Pergunta

Estou com um problema que não consigo entender na identidade do asp.net

aplique as seguintes etapas

  1. crie dois projetos web vazios, eles têm nomes:
    • Aplicativo Web1
    • Aplicativo Web2
  2. instalar pacote "Amostras de identidade do Microsoft ASP.NET 2.0.0-beta2"Em cada projeto
  3. Crie dois bancos de dados SQL com os seguintes nomes:
    • WebDatabase1
    • WebDatabase2
  4. adicionar usuário tem nome "Usuário1" em Aplicativo Web1
  5. adicionar usuário tem nome "Usuário2" em Aplicativo Web2
  6. executar dois projetos no mesmo tempo.

Meu problema é quando eu faço login por "Usuário1" em "Aplicativo Web1"

eu acho Aplicativo Web2 está logado com Usuário1.

apesar de cada projeto ter banco de dados separado.

E também NÃO Usuário1 em Aplicativo Web2.

O que é um problema?

Desculpe meu mau inglês!

Foi útil?

Solução

Quando um usuário entra no site, o middleware de autenticação serializa as informações do usuário conectado (incluindo ID, nome e funções) no cookie de autenticação criptografado.Nas visitas subsequentes, a estrutura simplesmente descriptografa e lê essas informações sem atingir o banco de dados.

Por padrão, o mesmo nome de cookie é usado em aplicativos ASP.NET.O que você vê acontecendo é o WebApp1 configurando o cookie e o WebApp2 lendo-o.Isso ocorre porque eles estão no mesmo domínio (ou localhost) e os cookies são compartilhados entre recursos no mesmo domínio.

Tente alterar o nome do cookie em seus aplicativos...

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    // ...
    CookieName = "WebApp1AuthCookie"
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top