单独的应用程序共享相同的ASP.Net会话Cookie

Cha*_*ert 7 asp.net cookies ssl session

我有两个ASP.Net应用程序驻留在我的服务器上的两个不同的文件夹中:

  • /Foo < - 这是标准的不安全应用程序
  • /Secure < - 这是一个单独的应用程序,需要IIS通过SSL

问题是默认情况下,ASP.NET_SessionIdcookie在域上指定,并在不同目录中的两个应用程序之间共享.我需要会话cookie不同,因为我不能允许使用被劫持的cookie /Foo来授予对/Secure应用程序的访问权限.

理想情况下,我希望每个应用程序的cookie都受cookie Path属性的限制.显然没有办法在.Net中开箱即用.

作为一个额外的头痛,即使我写的自定义代码来设置Cookie路径,我很害怕,有些浏览器是大小写敏感的,并不会使用相同的会话cookie /Foo/foo,这取决于链接是如何构建的,可导致同一个应用程序中的多个会话.

有没有人遇到并克服了这个问题?

Dav*_*vid 10

在.Net 2.0及更高版本中,您可以将web.config中"sessionState"XML元素的"cookieName"属性设置为每个应用程序的不同值.这将使他们不使用相同的会话ID.

这是MSDN的参考资料.