gpt4 book ai didi

c# - AuthorizationFilterAttribute 的 OnAuthorization 方法会在每次请求到达时执行吗?

转载 作者:行者123 更新时间:2023-11-30 16:53:55 26 4
gpt4 key购买 nike

我正在编写用于访问另一个 REST API 的 Web API ( v2.2 )。原因是我想限制一些功能并提供更友好的数据。简而言之,我正在为一些 REST API 编写包装器。我通过 AuthorizationFilterAttribute 的实现提供身份验证/授权。这是代码片段:

public override void OnAuthorization(HttpActionContext actionContext)
{
var authorizeHeader = actionContext.Request.Headers.Authorization;
if (authorizeHeader != null
&& authorizeHeader.Scheme.Equals("basic", StringComparison.OrdinalIgnoreCase)
&& String.IsNullOrEmpty(authorizeHeader.Parameter) == false)
{
// Code to test is username/password correct for second API
// Trying to get some recourse with provided credentials
// ...
}
}

现在我想了解,如果我将我的属性设置为 Controller 的操作,如下所示:

[HttpGet]
[Route("{taskId}/{dispatchId}")]
[SecureResourceAttribute] // This is my attribute
public IHttpActionResult GetDispatch(string taskId, string dispatchId)

每次我请求此操作时,OnAuthorization 方法都会执行 ?它是否在任何地方存储客户已经获得授权?如果否,我怎样才能让它存储该客户端已获得授权?

谢谢您的宝贵时间。

最佳答案

问:每次调用都会调用 OnAuthorization 吗?

A:如果controller装饰有[Authorize]属性,可以。

问:它是否在任何地方存储客户端已经被授权?

A:不可以。默认情况下该服务是无状态的。

问:如果否,我怎样才能让它存储客户端已经被授权?

A:这又回到了一个事实,即WEB API服务是无状态的,进来的不同请求之间没有关系。

关于c# - AuthorizationFilterAttribute 的 OnAuthorization 方法会在每次请求到达时执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30932489/

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