Sobrepor o login do usuário em dois projetos com a identidade do ASP.NET
-
21-12-2019 - |
Pergunta
Estou com um problema que não consigo entender na identidade do asp.net
aplique as seguintes etapas
- crie dois projetos web vazios, eles têm nomes:
- Aplicativo Web1
- Aplicativo Web2
- instalar pacote "Amostras de identidade do Microsoft ASP.NET 2.0.0-beta2"Em cada projeto
- Crie dois bancos de dados SQL com os seguintes nomes:
- WebDatabase1
- WebDatabase2
- adicionar usuário tem nome "Usuário1" em Aplicativo Web1
- adicionar usuário tem nome "Usuário2" em Aplicativo Web2
- 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!
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"
});