gpt4 book ai didi

c# - 如何使用owin和Mvc 5从httpcontext获取访问 token

转载 作者:行者123 更新时间:2023-12-02 02:39:36 28 4
gpt4 key购买 nike

我已经在 IdentityServer 4 中实现了 IDP 。我的 Web 应用程序客户端(在 Mvc 5 中实现)通过 IDP 进行身份验证,但现在我需要从请求中获取访问 token 。在 .Net Core 中执行此操作的一种方法是使用 Microsoft.AspNetCore.Authentication.AuthenticationTokenExtensions像这样:

HttpContext.Authentication.GetTokenAsync("acccess_token")

我希望能够在我的 .net Mvc5 Web 应用程序客户端中执行相同的操作,但我找不到任何具有类似实现的 nuget 包或命名空间。能够在 MVC5 而不是 .net Core 中执行此操作非常重要。有人以前遇到过这个吗?

PS-还值得一提的是我正在使用 OpenIdConnect

最佳答案

最近发布的 4.1.0 version of Katana 现在支持 SaveTokens property(从 ASP.NET Core 向后移植)。

为了获取访问 token :

  1. Microsoft.Owin.Security.OpenIdConnect 软件包更新至 4.1.0(或更高版本)
  2. 在 Startup 类中配置 SaveTokens:
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
// Other options removed for readability
SaveTokens = true,

// Required for the authorization code flow to exchange for tokens automatically
RedeemCode = true
});
  • 读取 Controller 中的访问 token :
  • var result = await Request.GetOwinContext().Authentication.AuthenticateAsync("Cookies");
    string token = result.Properties.Dictionary["access_token"];

    关于c# - 如何使用owin和Mvc 5从httpcontext获取访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46319114/

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