Identidade Asp.Net e nomes de cookies
-
21-12-2019 - |
Pergunta
Temos 2 aplicativos que usam Asp.Net Identity para segurança.
Eles não têm nada a ver um com o outro, mas sou desenvolvedor de ambos os projetos.
Estou enfrentando um problema bastante chato com o nome do Cookie.Se eu for para o app1 e fizer login, depois para o app2 e fazer login, sou desconectado do app1.
Meu palpite é que é porque os dois aplicativos estão compartilhando o mesmo nome de cookie.
Então pela facilidade de desenvolvimento e também por achar mais legal estou procurando uma forma de mudar o nome do cookie.
Qualquer pista?
Solução
OK, encontrei.
Por padrão, o VS e o Identity criarão um arquivo em App_Start chamado Startup.Auth.cs.
Este arquivo contém o seguinte código
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))
}
});
Para resolver nosso problema, temos que definir a propriedade CookieName do CookieAuthenticationOptions
CookieName = "my-very-own-cookie-name"
É isso;nada mais.
Saúde!
Outras dicas
Para FormsAuthentication, a alteração do nome do cookie é através do web.config:
<authentication mode="Forms" >
<forms loginUrl="~/Account/LogIn" timeout="2880" name=".cookie2" />
</authentication>