【发布时间】:2009-08-05 16:43:00
【问题描述】:
在我解决这个问题之前,让我先描述一下我的设置。我有两个使用表单身份验证的 Web 服务器(www.mydomain.com 和 www2.mydomain.com)。在每台 Web 服务器上,我都有一个用于身份验证的主应用程序和许多子应用程序。它看起来像这样:
www.mydomain.com
|__MainApp (.Net 2.0)
|__SubApp1 (.Net 1.1)
|__SubApp2 (.Net 2.0)
|__SubApp3 (.Net 2.0)
www2.mydomain.com
|__MainApp (.Net 2.0)
|__SubApp1 (.Net 1.1)
|__SubApp2 (.Net 2.0)
|__SubApp3 (.Net 2.0)
如您所见,我在同一台服务器上同时运行 .Net 1.1 和 2.0 应用程序。现在我一直在尝试提出一个适用于此设置的单点登录 (SSO) 解决方案,并且我已经部分成功。因为标签中的 domain 属性与 .Net 1.1 不兼容(它会导致应用程序抛出异常),所以我决定以编程方式设置生成的表单身份验证 cookie 的域。这工作正常,我可以在两台服务器之间导航,而无需再次登录。当服务器尝试重新发布/更新 cookie 并在启用了slidingExpiration 的情况下更新其过期时间时,就会出现问题。我生成的 cookie 是使用“mydomain.com”作为域创建的,但是当服务器尝试以新的过期时间重新发出它时,它找不到它并生成一个带有“www.mydomain.com”的全新 cookie域。
有没有办法让服务器正确地重新发布带有自定义域的原始 cookie?
【问题讨论】:
标签: asp.net forms-authentication