asp.net-mvc – 疑难解答反伪造令牌问题
|
我有一个表单的帖子,一直给我一个反伪造的令牌错误。 这是我的形式: @using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.EditorFor(m => m.Email)
@Html.EditorFor(m => m.Birthday)
<p>
<input type="submit" id="Go" value="Go" />
</p>
}
这里是我的操作方法: [HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Join(JoinViewModel model)
{
//a bunch of stuff here but it doesn't matter because it's not making it here
}
这里是web.config中的machineKey: <system.web> <machineKey validationKey="mykey" decryptionKey="myotherkey" validation="SHA1" decryption="AES" /> </system.web> 这里是我得到的错误: A required anti-forgery token was not supplied or was invalid. 我已经知道,改变用户的HttpContext将使令牌无效,但这不是在这里发生。我的Join操作的HttpGet只返回视图: [HttpGet]
public ActionResult Join()
{
return this.View();
}
所以我不知道发生了什么。我搜索过,一切似乎建议,这是machineKey更改(应用程序周期)或用户/会话更改。 还有什么可能发生吗?如何解决此问题? 解决方法我不知道你是否意味着你能够得到错误按需 – 或者你在日志中看到,但在任何情况下,这里是一种方法,以保证防御令牌错误。等待… >确保您已注销,然后输入您的登录信息
(现在我将假设这个确切的错误消息在MVC4中改变,这本质上是你得到的相同的消息)。 有很多人在那里仍然双击一切 – 这是坏的!我只是想出了这一点,只是醒来后,这是如何通过测试我真的不知道。你甚至不需要双击 – 我有自己的错误,当我点击第二次,如果按钮没有反应。 我刚刚删除了验证属性。我的网站总是SSL,我不会过于担心的风险。我只需要它现在工作。另一种解决方案是使用javascript禁用按钮。 这可以在MVC4初始安装模板上复制。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- razor – ASP.NET MVC 4 – for循环帖子模型集合属性,但for
- asp.net – 如何加密web.config中的一个条目
- asp.net – 如何获得Url.Action使用正确的端口号?
- asp.net-mvc – 使用ASP.NET MVC支持“Expect:100-continu
- iis-7 – 经典ASP站点请求在IIS7中随机挂起
- asp.net-mvc – 如何在asp.net mvc中提交下拉列表
- asp.net – 在将MVC和路由添加到WebForms项目后,IIS中的默认
- asp.net-mvc – ASP.net MVC DropDownList预选项目被忽略
- asp.net-mvc – ASP.NET MVC – 从URL中删除控制器名称
- asp.net-mvc-4 – mvc4 url验证
- asp.net-mvc – 向RouteValueDictionary添加复杂
- asp.net – 如何将javascript文件的服务限制为仅
- asp.net – 在Selectedindexchanged事件中选择下
- asp.net-mvc – 有一个最佳实践和建议替代会话变
- asp.net – html脚本标签不使用类型javascript?
- SignalR(.NET Core)中的JWT身份验证,而不在查询字
- asp.net-mvc – 使用jQuery ajax / load提交数组
- asp.net – 在为app_offline.htm提供特定URL时,将
- Asp.net Identity 2.0更新用户
- asp.net – 部分视图呈现按钮点击
