IE10将令牌注入.NET MVC链接

Smo*_*rko 19 asp.net-mvc internet-explorer-10

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

/(F(usb6gVWyFnXevozQyFvVxVdbsN0uM9kZ5wNu9gT9pWBINGuodOdzLKkIQzfhqy3UhnCLyXf78LugXZO2UPYfMbNzSJJawmbqUBL56TjKpXgWpiMdVAjB1T3YcPlGhZePwFd6C9P_f_Y89KiDnWcA9EfR1m0ud3IcBYTW8OwZxOMTd8bxt5hM8mgXVN6OSdoo3IMwRA2))/ 首页/索引

代替:

/首页/索引

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

<a href="/Home/Index">[linktext]</a>
Run Code Online (Sandbox Code Playgroud)

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

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

bka*_*aid 22

该代码是ASP.NET的无cookie会话功能的一部分.您可以在web.config 部分中禁用它<configuration><system.web>:

<sessionState cookieless="false" />
Run Code Online (Sandbox Code Playgroud)

或者:

<forms cookieless="UseCookies" />
Run Code Online (Sandbox Code Playgroud)

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


Ale*_*ran 8

.NET 2.0和.NET 4附带的浏览器定义文件中存在一个错误,即它们包含特定浏览器版本的定义.但某些浏览器(如IE 10)的版本不再在这些范围内.因此,ASP.NET将它们视为未知浏览器并默认为低级定义,这有一些不便之处,例如它不支持JavaScript和/或cookie等功能.

Microsoft发布了修正此问题的修补程序.

(来源)