我有一个现有的网站,但是突然有几天了,我不能再使用Google Chrome进行开发。当我使用标准编辑和创建页面时,会出现上面的错误提示。但是在Internet Explorer中没有这个问题。我使用的是Windows 10(已安装所有更新)和带有Update 4的VS2013。该项目是最新的MVC版本。我甚至检查了web.config文件,但是没有任何更改。我删除了所有历史记录、cookies、密码等信息。有人有什么想法吗?
我有一个现有的网站,但是突然有几天了,我不能再使用Google Chrome进行开发。当我使用标准编辑和创建页面时,会出现上面的错误提示。但是在Internet Explorer中没有这个问题。我使用的是Windows 10(已安装所有更新)和带有Update 4的VS2013。该项目是最新的MVC版本。我甚至检查了web.config文件,但是没有任何更改。我删除了所有历史记录、cookies、密码等信息。有人有什么想法吗?
我曾经遇到过同样的问题。我的解决方法是清除浏览器的cookies并禁用Adblock。其他插件也可能产生相同的影响。我认为这个问题仅限于Visual Studio / Chrome开发环境中,在生产环境中无论用户是否启用Adblock都不会出现。
<httpCookies requireSSL="true" />
你的Web.config文件中有一个名为requireSSL
的属性吗?将其改为false
。然后在你的转换文件(Web.Prod.config和其他启用SSL的环境)中:
<httpCookies requireSSL="true" xdt:Transform="SetAttributes" />
您是否在云平台上?Chrome从云域发出cookie,因此唯一的方法是将另一个命名域映射到您的云网站。
这可能是因为像Chrome这样的浏览器使用公共后缀列表(https://publicsuffix.org/list/effective_tld_names.dat)来限制某些cookie。如果在cookie上设置的域后缀是公开共享的,则浏览器可能会阻止此类cookie,以防止其向运行在同一域上的其他服务器发送“未经授权”的数据。
这个问题发生在我使用Chrome浏览器时,似乎与在登录表单上使用“记住我”复选框并关闭再重新打开浏览器有关。检查页面源代码时,令牌存在,但在Visual Studio的调试会话中报告为不存在。通过清除浏览器缓存并不勾选“记住我”框,我没有遇到这个问题 - 但我不完全理解为什么!!
在Chrome中重现错误的步骤:
无论如何,以下解决方案对我有效。在您的MVC视图表单内,尝试替换此内容:
@Html.AntiForgeryToken()
使用:
ViewContext.Writer.Write(Html.AntiForgeryToken().ToHtmlString());