繁体   English   中英

如何在2个ASP.NET应用程序上进行单独的会话

[英]How to have seperate sessions on 2 asp.net applications

我在同一IIS(7.5)的同一应用程序池中有两个asp.net应用程序(.NET 4.5)。 他们的身份验证表来自两个不同的数据库。 我的问题是,当我登录到一个应用程序时,我也同时登录了另一个应用程序(即使另一个应用程序没有相同的用户ID)。

显然,两个应用程序共享同一会话。 我已经更新了每个应用程序中的Web.config文件,如下所示:

<sessionState
  cookieName="some_unique_name"
  timeout="30">
</sessionState>
<membership defaultProvider="SqlProvider">
  <providers>
    <clear/>
    <add 
      name="SqlProvider" 
      type="System.Web.Security.SqlMembershipProvider" 
      connectionStringName="AuthCorporate"
      applicationName="some_unique_name"/>
  </providers>
</membership>

它可能与配置身份和验证有关。 我在Startup.Auth.cs中的 ConfigureAuth()看起来像这样:

public void ConfigureAuth(IAppBuilder app)
{
    // Enable the application to use a cookie to store information for the signed in user
    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
        LoginPath = new PathString("/Account/Login")
    });
}

使这两个应用程序具有各自独立的会话,我缺少什么? 提前致谢。

在您的评论中,您说您正在将Identity与MVC 5一起使用。可能在App_Start文件夹中有一个名为Startup.Auth.cs的文件。 它包含配置身份验证的部分(OWIN)启动类的第二部分。

在此类中,您应该配置cookieauthentication,可能使用唯一的cookiedomain / cookiename:

   app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                CookieDomain = ".My1stApp.com",
                CookieName = "App1CookieName",
                LoginPath = new PathString("/Account/Login"),
                Provider = new CookieAuthenticationProvider
                {
                    OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                        validateInterval: TimeSpan.FromMinutes(30),
                        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
                }
            });

这非常简单...为每个站点提供自己的应用程序池。 应用程序池在那里提供了一定程度的隔离/安全性...就像避免会话中的数据交叉一样。 最好的事情是,只需10秒即可解决您的问题。 我希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM