Web Api Asp.Net Identity



我只是尝试在DemissionatingHandler中使用Asp.Identity对用户进行身份验证。

像上面的代码:

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);
        }

我收到 302 状态 e 重定向到登录页面。是否可以在委派处理程序中进行身份验证?

更新:我不知道我是否需要使用Owin中间件

302重定向可能来自Cookie中间件。

如果要使用令牌身份验证,最好使用 OWIN 持有者令牌中间件。

请查看: https://blogs.msdn.microsoft.com/webdev/2013/09/20/understanding-security-features-in-the-spa-template-for-vs2013-rc/

该博客介绍了如何在 Web API 中使用持有者令牌以及如何与 cookie 中间件并行工作。

相关内容

  • 没有找到相关文章