csharp 验证可用于web api的AntiForgery令牌属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 验证可用于web api的AntiForgery令牌属性相关的知识,希望对你有一定的参考价值。
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public sealed class ValidateAntiForgeryTokenAttribute : FilterAttribute, IAuthorizationFilter
{
public Task<HttpResponseMessage> ExecuteAuthorizationFilterAsync(HttpActionContext actionContext, CancellationToken cancellationToken, Func<Task<HttpResponseMessage>> continuation)
{
try
{
//could add optional ajax header check here
AntiForgery.Validate();
}
catch
{
actionContext.Response = new HttpResponseMessage
{
StatusCode = HttpStatusCode.Forbidden,
RequestMessage = actionContext.ControllerContext.Request
};
return FromResult(actionContext.Response);
}
return continuation();
}
private Task<HttpResponseMessage> FromResult(HttpResponseMessage result)
{
var source = new TaskCompletionSource<HttpResponseMessage>();
source.SetResult(result);
return source.Task;
}
}
以上是关于csharp 验证可用于web api的AntiForgery令牌属性的主要内容,如果未能解决你的问题,请参考以下文章
Web API过滤器
对于仅由其他Web服务使用的Web API,建议的身份验证类型是什么
csharp 验证测试Api控制器
用于 aspnet-core web api 的基于令牌的身份验证
将身份验证同时用于 MVC 页面和 Web API 页面?
csharp 使用facebook令牌验证您的网络API