gpt4 book ai didi

asp.net - 使用相同登录数据库的多个应用程序相互注销

转载 作者:行者123 更新时间:2023-12-04 10:12:52 26 4
gpt4 key购买 nike

我已经设置了两个 ASP.NET机器上的应用程序,它们的 web.config 文件在 AspNetSqlMembershipProvider 项中包含相同的 applicationName 值,因此它们共享用户和角色。

问题顺序是:

  • 用户登录到应用程序 A,
  • 在浏览器中打开新标签
  • 登录到应用程序 B,
  • 他在应用程序 A 中的登录被注销

  • 反之亦然。

    我应该使用不同的方法在两个应用程序之间共享登录信息吗?

    最佳答案

    您遇到的问题是因为使用了相同的 cookie,用于对 2 个不同的登录进行身份验证。

    根据我的理解,解决方案是在不同的登录名上给出不同的 cookie 名称,所以一个 cookie,而不是覆盖另一个。

    可能解决方案是在 web.config 上。

    在配置

    更改名称值 , 对于您的 2 个应用程序上的不同内容,如果您具有相同的域并在不同的目录/应用程序上运行,或更改域值 也用来保存cookie。

    <authentication mode="Forms">
    <forms name=".CookieSuffix" domain="yoururl.com" ... />
    </authentication>

    例如,在您的应用程序的 2 个不同的 web.config 上,放置
    在应用程序 1 上: 名称=".app1"
    在应用程序 2 上: 名称=".app2"

    或者
    在应用程序 1 上: domain="app1.yoururl.com"
    在应用程序 2 上: domain="app2.yoururl.com"
    如果你分开你的应用程序,基于 url,甚至尝试一些类似的 aproces。

    cookie 是保留的,使用域名上的 cookie 名称,因此这是您必须尝试将它们分开的 2 个值。

    可以在此处找到有关表单设置的详细信息:
    http://msdn.microsoft.com/en-us/library/aa480476.aspx

    手动登录

    如果您有机会进行手动登录,则解决方案就在此功能上
    FormsAuthentication.GetAuthCookie(cUserName, false, "cookiePath");
    FormsAuthentication.SetAuthCookie(cUserName, false, "cookiePath");

    您只需要使用不同的cookiePath,但是,您必须在您的程序上更改许多点,并捕获进程登录、注销和身份验证。

    希望这对你有帮助。

    关于asp.net - 使用相同登录数据库的多个应用程序相互注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2454623/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com