asp.net-mvc-3 – 没有表单身份验证的AntiForgeryToken
我们有一个使用MVC3的网站和一个完全不依赖于表单身份验证的自定义身份验证方法 – 至少从我能说的方面来说.在web.config中我们设置
<authentication mode="None"></authentication> 我们永远不会在代码中的任何地方使用/设置HttpContext.User.问题是在某些情况下使用@ Html.AntiForgeryToken()时,用户会收到以下错误消息: A required anti-forgery token was not supplied or was invalid 我们使用以下代码集中了OnAuthorization中的所有反伪造检查: if (String.Compare(filterContext.HttpContext.Request.HttpMethod,"post",true) == 0) { var forgery = new ValidateAntiForgeryTokenAttribute(); forgery.OnAuthorization(filterContext); } 这就是异常发生的地方.我们有defined a machineKey in web.config来防止在应用程序池回收时生成新密钥.这并没有解决问题. 接下来我们认为客户的浏览器可能没有发送cookie.我们开始记录cookie并注意到在某些情况下会发送RequestVerificationToken_Lw cookie,但在其他情况下则不会 – 尽管其他cookie(如Google Analytics提供的cookie)也会被发送.可能是浏览器中的某些内容正在剥离一些cookie并让其他人进入? 好像是anti-forgery token depends on forms authentication.是这样的吗?任何方式在不以可靠的方式使用表单身份验证时继续使用AntiForgeryToken.请记住,我上面描述的方法适用于超过90%的情况,但我们无法确定为什么它对某些人不起作用. 思考? 解决方法
有些用户是否一直有这个问题?或者只是一些时间?此外,它是否一直适用于某些方法,或者对于相同的操作方法是否不一致?你有没有ajax电话?默认的防伪标记实现不处理AJAX调用.但是你可以编写一些自定义代码来使它工作
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 哪个会员提供程序实现存储在web.config中的用户
- asp.net-mvc – AllowAnonymous不能使用自定义Authorizatio
- asp.net – 防止页面在回发后滚动
- active-directory – 你能通过ADFS获得用户列表吗?
- asp.net – 在双列表框中移动项目
- asp.net mvc 自定义pager封装与优化
- ASP.NET HttpApplication生命周期
- asp.net-mvc – 你相信ASP.Net MVC已经准备好了吗?
- asp.net – 通过VB.NET将click事件添加到按钮以激活javascr
- 武装你的WEBAPI-OData入门
- 如何在ASP.NET中实现浮动许可证?
- asp.net-mvc-4 – 将复杂的viewmodel发布到控制器
- 基于B/S模式的asp大学生社团管理系统
- asp.net-mvc – ApplicationDbContext – 它在项
- asp.net – 在localhost中将IIS设置为Web开发服务
- ASP.NET Core中的Startup.cs中的asp.net-core –
- asp.net – Linq-to-SQL和DateTime的奇怪
- asp.net – 从Web应用程序编辑MS Office文档:自
- Asp.net身份密码散列
- EE 519: Speech Recognition and Processing for