0

我在我们的日志中看到过几次,用户也向我们报告过,但从未真正了解问题的根源。

有时,页面将从输出缓存中呈现,其中的链接具有奇怪的路径值。比如说(X(3)S(5l53uwuaffkddojv4iwb3snm))。这可能是因为页面的第一次渲染有这些链接,因此它们与它们一起缓存。

这意味着该页面上的所有 url 看起来都与此类似。

http://www.example.com/(X(3)S(5l53uwuaffkddojv4iwb3snm))/foo/bar/index.htm

这看起来与这个问题和 MSDN 文章“了解 ASP.NET 无 Cookie 功能的工作原理”相同,除了我们对公共站点使用会话或会话 cookie,但对于我们的站点的 99%,我们实际上并不使用会话. 剩下的 1% 使用会话 cookie 来提供用户体验,所以我看不出这会如何导致我们网站的其他部分出现问题。

上述文章的这一部分似乎引用了这个问题:

// Step 2: Check if we have already detected that Cookies are not 
//         supported. This is detected by looking for the string
//        "/(X(1))/" in the URL
If (URL-contains-"/(X(1))/")
   Report_cookies_are_NOT_supported_and_exit;

当前会话状态如下所示:

<sessionState mode="SQLServer" sqlConnectionString="data source=myDatabase;user id=dbUsername;password=dbPassword" cookieless="false" timeout="10080" />

有人对我如何解决这个问题有任何想法吗?有没有办法阻止这样的网址显示?

4

1 回答 1

1

确保您已强制使用 cookie:

<sessionState cookieless="UseCookies" />

以及表单身份验证 cookie:

<forms loginUrl="~/Account/LogOn" timeout="2880" cookieless="UseCookies" />

如果您不这样做并且有一个禁用 cookie 的客户端浏览器,您将在 url 中获得上述令牌。

于 2012-11-16T10:00:57.340 回答