我有一个现有的网站,而且几天前我突然无法使用Google Chrome进行开发。当我使用标准编辑和创建页面时,我得到上述错误。但我不是在Internet Explorer中获取它。我使用Windows 10(安装了所有更新)和VS2013与Update 4.该项目是最新的MVC版本。我甚至检查了web.config但没有任何改变。我删除了所有历史记录,Cookie,密码等。 任何人都有任何想法?
答案 0 :(得分:2)
我遇到了同样的问题。对我来说,解决方案是清除我的浏览器cookie并禁用Adblock。其他插件可能具有相同的效果。我认为问题仅限于Visual Studio / Chrome开发环境,无论最终用户是否启用了Adblock,都不会在生产环境中出现问题。
答案 1 :(得分:2)
你有
吗?<httpCookies requireSSL="true" />
你的Web.config中的?将其更改为false
。然后在转换文件(Web.Prod.config和其他具有SSL的环境)中:
<httpCookies requireSSL="true" xdt:Transform="SetAttributes" />
答案 2 :(得分:1)
我最近几周也遇到了同样的问题,但它也是在从Chrome发起后扩展了跨浏览器。更奇怪的是,它仍然能够在使用所有浏览器的不同机器上完美地运行相同的项目。 我甚至已经卸载所有扩展程序,删除所有Cookie /数据,完全退出Chrome并重新安装。问题仍然存在。
在部署到Azure网站时,问题并未出现在任何平台上。我目前的解决方法是Ctrl-F [ValidateAntiForgeryToken]并注释掉每次出现,并在部署时重新启用它。很烦人,但它确实有效。
答案 3 :(得分:0)
在Chrome中发生了这种情况,似乎与使用登录表单上的“记住我”复选框相关,然后关闭然后重新打开浏览器。令牌出现在检查页面源上,但在visual studio的调试会话期间报告不存在。通过清除浏览器缓存而不检查“记住我”框我没有遇到问题 - 但我不完全理解为什么!!
我在Chrome中重现错误的步骤:
无论如何,以下解决方案对我有用。在MVC视图表单中,尝试替换它:
@Html.AntiForgeryToken()
使用:
ViewContext.Writer.Write(Html.AntiForgeryToken().ToHtmlString());
答案 4 :(得分:0)
您是否在云平台上? chrome从云域发出cookie,因此唯一的方法是将另一个命名域映射到您的云网站
这可能是因为Chrome等浏览器使用公开后缀列表(https://publicsuffix.org/list/effective_tld_names.dat)来限制某些Cookie。如果在cookie上设置的域后缀是公开共享的,那么浏览器可能会阻止这样的cookie,以防止自己发送&#34;未授权的&#34;数据到同一域上运行的其他服务器。