微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – 使用相同登录数据库的多个应用程序相互记录

我在一台机器上设置了两个 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路径,但是,您必须更改程序中的许多点,并捕获进程登录,注销和身份验证.

希望这对你有所帮助.

原文地址:https://www.jb51.cc/aspnet/247653.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐