gpt4 book ai didi

c# - 如何在 .NET core 中使用 Microsoft 身份验证提取生成的 token ?

转载 作者:行者123 更新时间:2023-12-03 03:22:48 25 4
gpt4 key购买 nike

我正在使用 azure AD 的 .NET Core 中实现 Microsoft 身份验证。我成功地正确实现了此身份验证,并在身份验证过程完成后重定向到 swagger 端点。

问题在于重定向URL中给出了 token ,如下所示:token in url

为了将请求发送到端点,我必须手动复制该 token 并将其附加到请求中发送,否则我仍然会得到未经授权的代码。

有什么方法可以在重定向时提取 token 并将其保存在 session (或类似的)中,并以这种方式自动将其包含在发出的下一个请求中?

如果没有,我至少可以以某种方式提取 token 字符串吗?因为我没有找到任何方法来读取正在显示的 url 的实际当前值,只有在发出请求时我才能读取地址,但那是针对请求的,而不是针对实际的/swagger/access_token... 等

最佳答案

您已正确设置所有内容,将 token 通过 URL 提供给客户端(您的 Web 浏览器)是标准做法。现在,客户端(Web 浏览器上的网页)负责在每次请求时将该 token 发送到您的 Web 服务器。要处理这个问题,您需要客户端编码/javascript

你应该:

但是从问题来看,我猜你不熟悉客户端-服务器架构,而只是玩服务器部分?在这种情况下,一种可能性(不推荐)是:

  • 将重定向 URL 更改为您控制的 API/页面之一 (http://my-web-server/my-page/Index?access_token=...)

  • 在服务器中,从 URL 读取访问 token 并写入 cookie

      string accessToken = null;
    // If the access token is passed as a URL parameter (query string)
    if(Request.QueryString["access_token"] != null)
    {
    accessToken = Request.QueryString["access_token"].ToString();
    }


    if (!string.IsNullOrEmpty(accessToken))
    {
    HttpCookie cookie = new HttpCookie("AccessToken", accessToken);
    cookie.Expires = DateTime.Now.AddMinutes(30);
    Response.Cookies.Add(cookie);
    }
  • 从 Cookie 而不是 header 读取 token ( In ASP.NET Core read JWT token from Cookie instead of Headers )

执行此操作仅用于测试。您应该阅读客户端与服务器的概念以及相关概念(Http 请求、Http header 、Cookie、 session 、Javascript)

关于c# - 如何在 .NET core 中使用 Microsoft 身份验证提取生成的 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76488575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com