Asp.Net Identity和cookie名称

时间:2014-07-30 13:36:46

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

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

他们彼此无关,但我碰巧是两个项目的开发人员。

我面临一个非常烦人的Cookie名称问题。如果我转到app1然后登录到app2并登录,我就会从app1断开连接。

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

因此,为了便于开发,还因为我认为它更好,我正在寻找一种方法来更改cookie的名称。

有任何线索吗?

2 个答案:

答案 0 :(得分:36)

好的,找到了。

默认情况下,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"

就是这样;仅此而已。

干杯!

答案 1 :(得分:-1)

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

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