2

我只是想在DelegatingHandler中用Asp.Identity身份驗證用戶。Web Api Asp.Net身份

上面類似這樣的代碼:

public class TokenAuthentication : DelegatingHandler { 
     private readonly AuthenticationIdentityManager _identityManager; 

     public TokenAuthentication() { 
      _identityManager = new AuthenticationIdentityManager(new IdentityStore(new NFeDb())); 
     } 

     private Microsoft.Owin.Security.IAuthenticationManager AuthenticationManager { 
      get { 
       return HttpContext.Current.GetOwinContext().Authentication; 
      } 
     } 

     protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { 
      if (request.Headers.Contains("X-TokenCliente")) { 
       var tokenCliente = request.Headers.GetValues("X-TokenCliente").First(); 
       var s = _identityManager.Authentication.SignIn(this.AuthenticationManager, tokenCliente, false); 
       if (s.Success) { 
        return await base.SendAsync(request, cancellationToken); 
       } 
      } 

      return request.CreateResponse(HttpStatusCode.Unauthorized); 
     } 
    } 

但是,在我的控制與授權符號:

[Authorize] 
     public HttpResponseMessage Get() { 
      return Request.CreateResponse(HttpStatusCode.OK); 
     } 

我recive重定向到登錄頁面302狀態即有可能在DelegatingHandler中進行身份驗證?

更新:我不知道我是否需要使用OwinMiddleware

回答

相關問題