我在一台机器上设置了两个
ASP.NET应用程序,它们的web.config文件在AspNetsqlMembershipProvider项目中包含相同的applicationName值,因此它们共享用户和角色.
问题顺序是:
>用户登录应用程序A,
>在浏览器中打开新选项卡
>登录到应用程序B,
>他在申请表A中登录已退出
反之亦然.
解决方法
您遇到的问题是因为使用了相同的cookie,用于验证2个不同的登录.
根据我的理解,解决方案是在不同的登录名上给出不同的cookie名称,因此一个cookie不会覆盖另一个cookie.
可能解决方案是在web.config上.
在配置
如果您具有相同的域并在不同的目录/应用程序上运行,则更改名称值,在2个应用程序上更改为不同的值,或者还更改用于保留cookie的域值.
<authentication mode="Forms"> <forms name=".CookieSuffix" domain="yoururl.com" ... /> </authentication>
例如,在应用程序的2个不同的web.config上,放置
在应用1:name =“.app1”
在应用2:name =“.app2”
要么
在应用1:domain =“app1.yoururl.com”
在应用2:domain =“app2.yoururl.com”
如果你分开你的应用程序,基于网址,甚至尝试一些类似的过程.
使用域名上的cookie名称保留cookie,因此这是您必须尝试分离它们的2个值.
有关表单设置的详细信息,请访问:
http://msdn.microsoft.com/en-us/library/aa480476.aspx
手动登录
FormsAuthentication.GetAuthCookie(cUserName,false,"cookiePath"); FormsAuthentication.SetAuthCookie(cUserName,"cookiePath");
您只需要使用不同的cookie路径,但是,您必须更改程序中的许多点,并捕获进程登录,注销和身份验证.
希望这对你有所帮助.