2016-07-19 2 views
0

Я использую Owin на сервере, чтобы получить токен доступа. Впоследствии я отправляю токен от клиента к серверу для аутентификации. Я хочу знать, как я могу запустить функцию точно после завершения авторизации? (Я пробовал AccessTokenProvider -> OnReceiveAsync, но он не работал должным образом).Вызов обработчика функции после авторизации Token Token в C#

ответ

0

Я нашел ответ. Достаточно использовать OnReceive вместо OnReceiveAsync в приложении Start или где вы инициируете Oauth Object, как показано ниже:

OAuthOptions = new OAuthAuthorizationServerOptions 
{ 
    TokenEndpointPath = new PathString("/GetAuthToken", 
     Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory), 
      AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin", 
      AccessTokenExpireTimeSpan = TimeSpan.FromDays(10), 
      AllowInsecureHttp = true, 
      AccessTokenProvider = new AuthenticationTokenProvider() 
      { 
       OnReceive = context => 
       { 
        context.DeserializeTicket(context.Token); 
        // After this you can be sure that your ticket is initialized and have 
        // an access to the user 
        if(context.Ticket.Identity.IsAuthenticated) 
         EntityContext.UserId = context.Ticket.Identity.GetUserId(); 
        else 
         EntityContext.UserId = ""; 
       } 
      } 
};