gpt4 book ai didi

asp.net - 如何排除 Controller 进行身份验证

转载 作者:行者123 更新时间:2023-12-05 06:45:42 28 4
gpt4 key购买 nike

我已经覆盖了我的 asp.net web api 项目中的 IautheticationFIlter。这是我的类(class):

public class TokenAuthentication : Attribute, IAuthenticationFilter
{
private readonly string realm;

public bool AllowMultiple { get { return false; } }

public TokenAuthentication(string realm)
{
this.realm = "realm=" + realm;
}

public Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken)
{
var request = context.Request;

// Receive token from the client. Here is the example when token is in header:
var token = request.Headers.GetValues("Token").ElementAt(0);

...

}
return Task.FromResult(0);
}


public Task ChallengeAsync(HttpAuthenticationChallengeContext context, CancellationToken cancellationToken)
{
context.Result = new ResultWithChallenge(context.Result, realm);
return Task.FromResult(0);
}
}

现在我需要将我的登录 Controller 排除在认证之外:

目前,当我运行我的项目时,如果我放置 [Authorize]、[AllowAnonymous] 或根本没有过滤器,每个请求都会触发此代码。

这是我添加过滤器的地方:

      public static void RegisterHttpFilters(System.Web.Http.Filters.HttpFilterCollection filters)
{
filters.Add(new TokenAuthentication(""));
}

最佳答案

我认为,您混淆了身份验证授权。可能您想将您的登录 Controller 排除在授权之外。
[Authorize] 和 [AllowAnonymous] 属性用于授权上下文,与身份验证无关。这就是每次调用 IAuthenticationFilter 的原因。 这篇文章也可能有用 http://www.asp.net/web-api/overview/security/authentication-and-authorization-in-aspnet-web-api .

关于asp.net - 如何排除 Controller 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22293267/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com