Domanda

Ho un problema Non riesco a capire in ASP.NET Identity

Applicare i seguenti passaggi

    .
  1. Crea due progetti Web vuoti, hanno nomi:
      .
    • webapplication1
    • webapplication2
  2. Installa pacchetto " Microsoft ASP.NET Identity Samples 2.0.0-beta2 " su ciascun progetto
  3. Crea due database SQL hanno i seguenti nomi:
      .
    • webdatabase1
    • webdatabase2
  4. Aggiungi utente ha un nome " user1 " in webapplication1
  5. Aggiungi utente ha un nome " user2 " in webapplication2
  6. Esegui due i progetti al stesso Time .
  7. 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!

È stato utile?

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"
});
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top