19

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

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

代替:

/首页/索引

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

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

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

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

4

3 回答 3

22

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

<sessionState cookieless="false" />

或与:

<forms cookieless="UseCookies" />

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

于 2012-09-01T15:01:30.843 回答
8

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

Microsoft 发布了修复该问题的修补程序。

来源

于 2012-09-01T15:08:53.883 回答
1

像这样添加你的 web.config 文件cookieless="UseCookies"

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

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

于 2013-04-12T13:48:16.017 回答