IE10将令牌注入.NET MVC链接



我有一个工作。NET MVC应用程序,但当在Windows 8上使用IE10访问时,浏览器源代码显示所有动态生成的URL,例如Url.Action("Index", "Home"),都写为:

/(F(usb6gVWyFnXevozQyFvVxVdbsN0uM9kZ5wNu9gT9pWBINGuodOdzLKkIQzfhqy3UhnClyXf78LugXZO2UPYfMbNzSJJawbqUBL56tjKpXgWpiMdVAjB1T3YcPlGhZePwFd6C9P_F_Y89KiDnWcA9EfR1m0ud3IcBYTW8OwZxOMTd8xt5hM8mgXVN6OSdoo3IMWRA2)))/主页/索引

而不是:

/首页/索引

如果我们用静态HTML编写链接:

<a href="/Home/Index">[linktext]</a>

IE10重定向到登录页面。问题是当暂时离开网站去一个有链接回第一个网站的合作伙伴网站时。由于注入的代码丢失,返回的URL不再有效,并重定向到登录名。

有人知道为什么要注入此代码(Framework或IE10问题?)

该代码是ASP的一部分。NET的无烹饪会话功能。您可以在web.config <configuration><system.web>部分中使用以下命令禁用它:

<sessionState cookieless="false" />

或带有:

<forms cookieless="UseCookies" />

我不知道IE10为什么这么做。你可能会在app_browsers中添加一个更新了IE10信息的浏览器文件,告诉它它支持cookie。或者您禁用了cookie?

随附的浏览器定义文件中存在一个错误。NET 2.0和。NET 4,即它们包含特定范围的浏览器版本的定义。但一些浏览器(如IE 10)的版本已经不在这些范围内了。因此,ASP。NET将它们视为未知浏览器,并默认为下层定义,这有一些不便,比如它不支持JavaScript和/或cookie等功能。

微软发布了修复程序来纠正这个问题。

  • 。净4-http://support.microsoft.com/kb/2600088
  • 。NET 2.0
    • http://support.microsoft.com/kb/2600100适用于Win7 SP1/Windows Server2008 R2 SP1、Windows Vista/Server 2008、Windows XP/Server 2003
    • http://support.microsoft.com/kb/2608565适用于Win7/Windows Server 2008R2 RTM

来源

像这样将web.config文件添加到cookieless="UseCookies"

<authentication mode="Forms">
  <forms loginUrl="~/YourLoginUrl" timeout="2880" **cookieless="UseCookies"** />
</authentication>

这个解决方案引用自这个链接;https://stackoverflow.com/a/15510453/2057154

最新更新