【问题标题】:Links being rendered with strange path values使用奇怪的路径值渲染的链接
【发布时间】:2012-11-16 09:53:44
【问题描述】:

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

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

这意味着该页面上的所有网址都与此类似。

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

这看起来与 this question 和 MSDN 文章“Understand How the ASP.NET Cookieless Feature Works”相同,除了我们对公共站点使用会话或会话 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 如下所示:

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

有人对我如何解决此问题有任何想法吗?有什么办法可以阻止这样的网址显示?

【问题讨论】:

    标签: asp.net-mvc iis sql-session-state


    【解决方案1】:

    确保您已强制使用 cookie:

    <sessionState cookieless="UseCookies" />
    

    对于表单身份验证 cookie 也是如此:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 2019-02-21
    • 2015-07-13
    • 1970-01-01
    相关资源
    最近更新 更多