前台页面使用@Html.AntiForgeryToken()和Controller中的[ValidateAntiForgeryToken]配合使用可以防止CSRF攻击,详细介绍可查看一下链接:

http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html

 

出现当前错误,是因为在登陆完成为当前用户创建ClaimsIdentity对象时没有指定ClaimTypes,导致验证时不知道该用什么类型进行验证,或者验证类型不正确。

 

解决办法:

打开Global.asax文件,在 Application_Start()方法中添加

AntiForgeryConfig.UniqueClaimTypeIdentifier =ClaimTypes.Name;

如果不知道到底该配置为什么类型,防止配置错误,可以用如下方式查看类型:

1.先将前台页面的@Html.AntiForgeryToken()删除掉,在Controller中添加如下代码

   string strCurrentType = AntiForgeryConfig.UniqueClaimTypeIdentifier;

2.在上面那句代码上打断点,然后调试项目,就能知道在Application_Start()方法中究竟该配置哪个类型了。

相关文章:

  • 2021-05-17
  • 2022-12-23
  • 2021-06-25
  • 2022-01-23
  • 2022-12-23
猜你喜欢
  • 2021-09-28
  • 2022-12-23
  • 2021-11-04
  • 2021-12-30
  • 2022-12-23
  • 2021-12-31
  • 2021-12-31
相关资源
相似解决方案