【发布时间】:2017-03-29 17:42:40
【问题描述】:
我在 Web API 2 中创建了一个简单的自定义身份验证过滤器,如下所示。
public Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken)
{
string authToken = context.Request.Headers.GetValues("CustomAuthHeader").FirstOrDefault();
if (string.IsNullOrEmpty(authToken))
{
context.ErrorResult = new UnauthorizedResult(new AuthenticationHeaderValue[0], context.Request);
}
return Task.FromResult(0);
}
public Task ChallengeAsync(HttpAuthenticationChallengeContext context, CancellationToken cancellationToken)
{
return Task.FromResult(0);
}
我对此有以下问题-
1)。 AuthenticateAsync 用于实现核心身份验证逻辑,但 ChallengeAsync 在现实生活中的用途是什么。如果可能,请举例说明。
2)。为什么它返回任务。每次都会在后端创建一个新线程(无论何时适用)。如果每次都创建一个新线程,这个线程什么时候会被杀死?
3)。 Task.FromResult(0)的作用是什么
谢谢!
【问题讨论】:
标签: asp.net-web-api