ASP.NET Membership 开发-同一域名不同应用程序冲突的情况

作者:vkvi 来源:ITPOW(原创) 日期:2013-5-12

举个例,我在 www.itpow.com 下建了两个应用程序:p1 和 p2,这两个都使用 ASP.NET 的 Membership,发现在应用程序 p1 登录了后,会影响 p2,在 p2 登录也会影响 p1。

怎么回事呢?

原来相关信息是记录到 cookie 中的,默认 cookie 在同一域下是相通的,这就造成了冲突。

怎么解决

在各自的 web.config 中 system.web 节下配置 authentication 节,设置 forms 不同的 name 和 path。name 可以含有横线,比如“-”,甚至其他英文符号都没什么问题,但是不能用中文。

没完,如果使用了 path 等,这就要求在写 Cookie 时不能省略 path 等信息。比如,这样写:

注意

由于记录登录靠的是 Cookie,而 Cookie 不限制端口,Path 也可以自由指定,所以为了防止应该程序 A 读取、仿冒应用程序 B 的登录信息,我们必须保证同一个域名(或 IP)下的应用程序之间是相互可信任的,它们不得相互读取、仿冒别人的登录信息(Cookie)。

相关阅读

相关文章