【问题标题】:Cookieless session from URL to QueryString从 URL 到 QueryString 的无 Cookie 会话
【发布时间】:2012-08-05 13:08:08
【问题描述】:

根据 MSDN here 上的文档,当您使用 AutoDetect 时,我们目前在 ASP.NET 中遇到无 cookie 会话问题:

ASP.NET 确定请求浏览器或设备是否支持 cookie。如果请求浏览器或设备支持 cookie,则 AutoDetect 使用 cookie 来保存用户数据; 否则,将在查询字符串中使用标识符。如果浏览器或设备支持 cookie,但 cookie 当前被禁用,请求功能仍会使用 cookie。

注意查询字符串部分!现在,如果确实将它添加到像 &sessionId=yoursessionidhere 这样的 URL 中,那一切都很好,但实际上我得到的是这样的 URL:http://yourserver/folder/(session ID here)/default.aspx

所以我的问题是:如何配置 ASP.NET 以使用查询字符串(如它所声称的那样)而不是这种 URL 破坏方法?

更新:

我正在添加我们在 web.config 中使用的配置值:

<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="AutoDetect" timeout="20" />

【问题讨论】:

  • &amp;sessionId=yoursessionidhere 据我所知,这样会话 ID 不会添加到 URL 中
  • @WaqarJanjua:这正是我所说的。 ID 像 http://yourserver/(sessionid)/folder/resource.aspx 一样添加,我们不希望它破坏干净的 URL。我们希望将 id 添加到查询字符串中,以使其不那么突出。这是关于保持一个干净的 URL。
  • 这是一个很好的问题(投票赞成)我会调查的!顺便说一下,您是使用带有路由或 MVC 的 WebForm 还是混合使用?

标签: asp.net session iis


【解决方案1】:

在此处阅读此资源http://forums.asp.net/t/1480365.aspx/1 您是否在 web.config 中有 cookieless="UseUri" 设置 - 尝试从我收集的内容中删除它可能会有所帮助!请告诉我!

此外,可能值得在问题中发布您的配置块。

我做了更多的挖掘,发现这篇文章涵盖了 MVC 源代码中的请求处理 - 使用 URL 中的会话 ID 进行路由看起来非常深入 - 请参阅例外的答案代码块 Possible Bug With ASP.NET MVC 3 Routing?

我会继续寻找你,但这个让我难过!我认为您需要在 Hanselmann、Haack 或 Skeet 之类的人面前提出这个问题。

【讨论】:

  • 我们的配置中没有这个。我会将我们的配置添加到帖子中。
  • 感谢您的提醒。我检查了帖子上的信息,这是有道理的。但是没有意义的是,当我们的客户决定停止对无 cookie 的支持时,我们将设置设置为 UseCookies,但无 cookie 的 URL 仍被我们的应用程序接受。所以现在我正在寻找一种方法让这些 URL 以 404 结尾。
  • 尝试使用 cookieless="false" 而不是 UseCookies 来防止无 cookie 的 url 工作在这里看到这个线程 forums.asp.net/t/1749701.aspx/1?Session+ID+in+URL
猜你喜欢
  • 2014-03-04
  • 1970-01-01
  • 2012-08-04
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 2019-10-31
  • 2011-08-18
  • 2012-03-11
相关资源
最近更新 更多