如果出于某些审计原因,我会被要求在 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/