Overpop User Login in due progetti con Identity ASP.NET
-
21-12-2019 - |
Domanda
Ho un problema Non riesco a capire in ASP.NET Identity
Applicare i seguenti passaggi
- .
- Crea due progetti Web vuoti, hanno nomi:
- .
- webapplication1
- webapplication2
- Installa pacchetto " Microsoft ASP.NET Identity Samples 2.0.0-beta2 " su ciascun progetto
- Crea due database SQL hanno i seguenti nomi:
- .
- webdatabase1
- webdatabase2
- Aggiungi utente ha un nome " user1 " in webapplication1
- Aggiungi utente ha un nome " user2 " in webapplication2
- Esegui due i progetti al stesso Time .
Il mio problema è quando login di " user1 " in " webapplication1 "
Trovo WebApplication2 è registrato con User1 .
Nonostante ciascun progetto abbia un database separato.
E anche Nessun utente1 in WebApplication2 .
Qual è un problema?
Scusa il mio cattivo inglese!
Soluzione
Quando un utente firma nel sito, il middleware dell'autenzione serializza le informazioni utente registrate (incluso l'ID, il nome e i ruoli) nel cookie di autenticazione crittografata.Nelle visite successive, il framework decrittografa e legge tali informazioni senza colpire il database.
Per impostazione predefinita, lo stesso nome cookie viene utilizzato attraverso le applicazioni ASP.NET.Quello che vedi accadere è WebApp1 Impostazione del cookie e WebApp2 leggendolo.Questo perché sono sullo stesso dominio (o localhost) e i cookie sono condivisi in tutte le risorse sullo stesso dominio.
Prova a cambiare il nome del cookie nelle tue applicazioni ...
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
// ...
CookieName = "WebApp1AuthCookie"
});
.