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?

Foi útil?

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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top