从URL到QueryString的无Cookie会话

时间:2012-08-08 12:11:53

标签: asp.net session iis

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

  

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

注意查询字符串部分!现在,如果确实将其添加到&sessionId=yoursessionidhere这样的网址中,那就很好了,但实际上我得到的是这样的网址: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" />

1 个答案:

答案 0 :(得分:1)

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

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

我已经做了一些挖掘,并发现这篇文章涵盖了MVC源代码中的请求处理 - 使用URL中的会话ID进行路由看起来非常深入 - 请参阅例外答案代码块{{3 }}

我会继续找你,但这个让我难过!我想你需要在像Hanselmann,Haack或Skeet这样的人面前提出这个问题。