问题描述
我正在尝试使用验证令牌来防止Web API 2中的跨站点伪造,并且遇到了使代码得以执行的问题。
属性类中的代码:
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class,AllowMultiple = false,Inherited = true)]
public sealed class ValidateHeaderAntiForgeryTokenAttribute : FilterAttribute,IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
if (filterContext == null)
{
throw new ArgumentNullException("filterContext");
}
var httpContext = filterContext.HttpContext;
var cookie = httpContext.Request.Cookies[AntiForgeryConfig.CookieName];
AntiForgery.Validate(cookie != null ? cookie.Value : null,httpContext.Request.Headers["__RequestVerificationToken"]);
}
}
在我的发布方法中,利用 ValidateAntiForgeryToken 属性:
[APIAuthorize(Roles = IdentityRoles.NsccAdministrator)]
[HttpPost()]
[ValidateHeaderAntiForgeryToken]
public int Post([FromBody] NsccNewPlanRequest data)
{
// do some stuff and return
}
问题是,我似乎无法获得执行ValidateHeaderAntiForgeryToken属性中代码的过程。语法上所有内容都是正确的,并且可以识别该属性。它根本无法达到我设置的OnAuthorization方法断点。
对为什么有任何想法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)