2014-09-27 55 views
5

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

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

我发现的唯一的解决方法是建立在读取输出流的Global.Asax的HTTP过滤器,并从那里得到的令牌。

有没有更优雅的方式直接从Owin Api

回答

7

当然可以,但你需要使用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); 
    } 
+0

代码中,我需要从清除的accessToken我web API,请让我在哪里存储。 – Pradeep 2015-11-04 11:47:54

+0

关于如何更改访问令牌的任何想法? context.AccessToken =“newToken”没有看到,因为它没有setter。 – ozzy432836 2016-06-21 14:29:14

相关问题