使用各种 AuthenticateResults 在 .net 核心中进行身份验证

时间:2021-07-07 12:13:38

标签: c# .net asp.net-core .net-core .net-core-3.1

我是 .net 核心的新手。我们正在尝试向项目添加身份验证。

我的身份验证处理程序的 HandleAuthenticateAsync 函数如下所示。

        protected override Task<AuthenticateResult> HandleAuthenticateAsync()
        {
            string token = Gettoken(_httpContextAccessor.HttpContext.Request);
            if(token == null)
            {
                return AuthenticateResult.NoResult();
            }
            
            
            if(Validatetoken(token) == false)
            {
                return AuthenticateResult.Fail("invalid token");
            }

            var tokenIdentity = new TokenIdentity(token);
            var principal = new GenericPrincipal(tokenIdentity, null);
            var authTicket = new AuthenticationTicket(principal, "schema");
            return AuthenticateResult.Success(authTicket);
        }

我只想在令牌无效时抛出客户端错误(在 AuthenticateResult.Fail 上) 并希望在其他情况下继续处理请求(在 AuthenticateResult.NoResult 和 AuthenticateResult.Success 上)

我怎样才能达到这个要求?谢谢。

1 个答案:

答案 0 :(得分:0)