我有两个ASP.Net应用程序驻留在我的服务器上的两个不同的文件夹中:
/Foo
< - 这是标准的不安全应用程序
/Secure
< - 这是一个单独的应用程序,需要IIS通过SSL
问题是默认情况下,ASP.NET_SessionId
cookie在域上指定,并在不同目录中的两个应用程序之间共享.我需要会话cookie不同,因为我不能允许使用被劫持的cookie /Foo
来授予对/Secure
应用程序的访问权限.
理想情况下,我希望每个应用程序的cookie都受cookie Path
属性的限制.显然没有办法在.Net中开箱即用.
作为一个额外的头痛,即使我写的自定义代码来设置Cookie路径,我很害怕,有些浏览器是大小写敏感的,并不会使用相同的会话cookie /Foo
和/foo
,这取决于链接是如何构建的,可导致同一个应用程序中的多个会话.
有没有人遇到并克服了这个问题?
在.Net 2.0及更高版本中,您可以将web.config中"sessionState"XML元素的"cookieName"属性设置为每个应用程序的不同值.这将使他们不使用相同的会话ID.
这是MSDN的参考资料.