【问题标题】:Asp.Net Identity and cookie namesAsp.Net 身份和 cookie 名称
【发布时间】:2018-08-22 00:22:05
【问题描述】:

我们有 2 个应用程序都使用 Asp.Net Identity 来确保安全。

它们彼此无关,但我恰好是这两个项目的开发人员。

我在 Cookie 名称方面遇到了一个非常烦人的问题。如果我转到 app1 并登录,然后再登录 app2 并登录,我会与 app1 断开连接。

我的猜测是,这是因为这 2 个应用程序共享相同的 cookie 名称。

所以为了便于开发,也因为我认为这样更好,我正在寻找一种方法来更改 cookie 的名称。

有什么线索吗?

【问题讨论】:

    标签: asp.net cookies asp.net-identity


    【解决方案1】:

    好的,找到了。

    默认情况下,VS 和 Identity 会在 App_Start 中创建一个名为 Startup.Auth.cs 的文件。

    此文件包含以下代码

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

    要解决我们的问题,我们必须设置CookieAuthenticationOptions 的CookieName 属性

    CookieName = "my-very-own-cookie-name"
    

    就是这样;仅此而已。

    干杯!

    【讨论】:

      【解决方案2】:

      对于FormsAuthentication,cookie名称的改变是通过web.config:

      <authentication mode="Forms" >
        <forms loginUrl="~/Account/LogIn" timeout="2880" name=".cookie2" />
      </authentication>
      

      【讨论】:

      • OP 使用的是ASP.NET Identity,而不是FormsAuthentication
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 2011-08-19
      • 1970-01-01
      • 2017-03-30
      • 1970-01-01
      • 2015-10-09
      相关资源
      最近更新 更多