c# - 从 Owin Api 创建后如何获取 Oauth2 AccessToken?

标签 c# asp.net oauth-2.0 token owin

如果出于某些审计原因,我会被要求在 AccessToken 创建后将其存储到 Db,是否有 Owin API 类 返回 AccessToken ?

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
    //check user credentials
    ....
    context.Validated(ticket);
    //Where should I get the generated token?
    }
}

我发现的唯一解决方法是在 Global.Asax 中创建一个 Http 过滤器,它读取输出流并从那里获取 token 。

是否有更优雅的方式直接从 Owin Api 获取它?

最佳答案

当然可以,但您需要使用 Microsoft.Owin.Security.OAuth 版本 3.0 而不是 2.1,然后在类 OAuthAuthorizationServerProvider 中覆盖 TokenEndpointResponse,如下面的代码

public override Task TokenEndpointResponse(OAuthTokenEndpointResponseContext context)
    {
        var accessToken = context.AccessToken;
        return Task.FromResult<object>(null);
    }

关于c# - 从 Owin Api 创建后如何获取 Oauth2 AccessToken?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26071743/

相关文章:

asp.net - ASP.NET MVC 操作中的返回类型

c# - .NET - 哪些系统程序集被注释为可空引用类型?

c# - 什么是 x-wmapp2 和 x-wmapp1?

c# - ffmpeg c# asp.net help on ProcessStartInfo

c# - 如何使用 OWIN 中间件在 Web Api 中实现 OAuth2 Authorization_Code Flow?

java - Google plus-cmdline-示例

oauth-2.0 - 用于用户注册、密码重置、忘记密码等的 Keycloak 端点

c# - 用于更改 Internet Explorer 设置的 API(特别是 "Allow mixed content")

c# - 如何以编程方式退出正在运行的单元测试(使用 Visual Studio c# 和单元测试框架)

asp.net - IOS 上无服务器多人游戏