WebApi - 在context.Validated()之后获取OAuth承载令牌

时间:2015-08-03 09:07:36

标签: oauth asp.net-web-api bearer-token

简单的一个我希望:)我有一个API的OAuth令牌终点,它完全正常工作,但是,我想将令牌存储在数据库中。

在.....

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)

我有以下代码.....

var identity = new ClaimsIdentity(context.Options.AuthenticationType);

identity.AddClaim(new Claim("Username", context.UserName));
identity.AddClaim(new Claim("IpAddress", context.OwinContext.Request.RemoteIpAddress));
identity.AddClaim(new Claim("TokenReceivedDate", DateTime.Now.ToString()));

//  Now store the token in the database.

context.Validated(identity);

我可以获得此时发出的持票人令牌吗?理想情况下,我希望将其存储在数据库中以供旧版应用程序使用。挖掘所有对象类似于的任何对象(可能)持有令牌似乎是NULL

1 个答案:

答案 0 :(得分:3)

通过覆盖TokenEndPointReponse'解决了问题。你可以很容易地挖掘出生成的令牌。

public override Task TokenEndpointResponse(OAuthTokenEndpointResponseContext context)
{
    string thisIsTheToken = context.AccessToken;
    return base.TokenEndpointResponse(context);
}