我们有2个应用程序都使用Asp.Net Identity来保证安全。
他们彼此无关,但我碰巧是两个项目的开发人员。
我面临一个非常烦人的Cookie名称问题。如果我转到app1然后登录到app2并登录,我就会从app1断开连接。
我的猜测是,这是因为2个应用程序共享相同的cookie名称。
因此,为了便于开发,还因为我认为它更好,我正在寻找一种方法来更改cookie的名称。
有任何线索吗?
答案 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 = "my-very-own-cookie-name"
就是这样;仅此而已。
干杯!
答案 1 :(得分:-1)
对于FormsAuthentication,cookie名称的更改是通过web.config:
<authentication mode="Forms" >
<forms loginUrl="~/Account/LogIn" timeout="2880" name=".cookie2" />
</authentication>