2014-09-27 8 views
5

Wenn ich aus irgendeinem Grund die AccessToken nach der Erstellung an Db speichern soll, gibt es dann eine Owin API-Klasse, die die AccessToken zurückgibt?Wie erhalten Sie den Oauth2 AccessToken nach seiner Erstellung von der Owin Api?

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

Die einzige Abhilfe, die ich gefunden ist ein Http-Filter in den Global.Asax zu schaffen, die den Ausgangsstrom liest und das Token von dort zu bekommen.

Gibt es einen eleganteren Weg, um es direkt aus der Owin Api zu bekommen?

Antwort

7

Natürlich können Sie, aber Sie müssen Microsoft.Owin.Security.OAuth Version 3.0 nicht 2.1 und dann außer Kraft setzen TokenEndpointResponse in Klasse OAuthAuthorizationServerProvider wie der Code unter

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

beim Abmelden verwenden ich die accessToken löschen müssen von meinem Web-API, lassen Sie mich bitte, wo es gespeichert wird. – Pradeep

+0

Haben Sie Ideen, wie Sie das Zugriffstoken ändern können? context.AccessToken = "newToken" sieht nicht, um zu arbeiten, da es keinen Setter hat. – ozzy432836