【问题标题】:Logout in one application cause logout in another one在一个应用程序中注销会导致在另一个应用程序中注销
【发布时间】:2015-09-29 11:38:40
【问题描述】:

我在同一台服务器上托管了两个不同的 Web 应用程序。

在一个应用程序中,我有到第二个应用程序的链接。

如果用户登录第一个应用程序并单击第二个应用程序的链接, 当我通过查询字符串传递登录信息时,用户会自动登录。

问题:

如果用户在其中任何一个应用程序中单击注销按钮,另一个应用程序中的会话也会自动丢失

为什么会这样?我该如何克服呢?

【问题讨论】:

  • 你们在使用 cookie 吗?两个站点之间是否相同
  • 我建议您避免为不同的项目使用相同的会话名称,或者不要同时运行具有相同cookie数据或会话数据的项目。
  • 如何在应用程序中进行身份验证?
  • 我不使用cookies。我在第一个应用程序中创建一个 GUID 并通过查询字符串发送它并使用来自第二个应用程序的服务对其进行身份验证
  • 我认为只有一个会话,因为您要从一个应用程序转到另一个应用程序

标签: c# asp.net


【解决方案1】:

我遇到了问题,这两个应用程序的域名相同。 由于它具有相同的域名,因此 cookie 和会话 ID 相同。用不同的域名托管这些应用程序,问题就消失了..!

【讨论】:

    【解决方案2】:

    如果您使用表单身份验证,则应更改 web.config 中的 cookie 名称

    <system.web>
        <authentication mode="Forms">
          <forms name=".SOMENAME" requireSSL="false" protection="All" loginUrl="~/Security/Login" timeout="2880" />
        </authentication>
      </system.web>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 2019-01-12
      相关资源
      最近更新 更多