Io creo un'applicazione web nuova di zecca diciamo "WebApplication1" - WebForms con autenticazione impostata su Account utente individuale. Non aggiungo una singola riga di codice al modello di codice generato automaticamente. Corro l'applicazione e registro un utente "Utente1" ed eseguo l'accesso - funziona perfettamente.Perché gli accessi Identity ASP.NET da un sito vengono condivisi con siti Web diversi sullo stesso computer?
Ora creo un'altra applicazione Web "WebApplication2": stessi WebForm con Autenticazione impostata su Account utente individuale. Di nuovo nessun codice ed eseguo l'applicazione. Ora creo un altro utente dire "Utente2" - funziona bene.
Il problema si verifica quando entrambe le applicazioni sono in esecuzione contemporaneamente. Se accedo al primo sito come "Utente1" questo imposta automaticamente il Context.User.Identity del secondo sito da "webApplication2" come "Utente1" quando non ha nemmeno "Utente1" registrato e viceversa e se io disconnettersi da un sito l'altro viene disconnesso.
Com'è possibile condividere Context.User.Identity?
Il codice è lo stesso -
public static void SignIn(UserManager manager, ApplicationUser user, bool isPersistent){
IAuthenticationManager authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
authenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
authenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
}
io certo mi manca un po 'di conoscenza di base su come funziona ASP.Net Identità quindi per favore help me out.
Grazie in anticipo.
Ottima domanda e ottima risposta accettato di seguito. Raccomanderei di rinominare il titolo della domanda in qualcosa di più "question-ish", come "Perché gli accessi Identity ASP.NET da un sito vengono condivisi con siti Web diversi sullo stesso computer?" (O qualcosa del genere ...) – Funka
@ Funka - Domanda cambiata secondo il tuo suggerimento. –