0

Ich kann es nicht herausfinden, aber ich habe zwei MVC-Projekte mit Single Sign-On-Anmeldung, die ich neu seed, und nach dem Seed, Benutzer-Variable mit einem Null-Wert zurückgibt.MVC var userStore = neuer Benutzerspeicher <ApplicationUser> (db); null zurück

Dies ist mein Code (beachten Sie, dass die db funktioniert gut und findet alle meine Tabellen und die AspNetUsers Tabelle auch):

private ApplicationDbContext db = new ApplicationDbContext(); 

und im Index-Methode (usermanager Reihe wirft die Ausnahme, da Usersnullwert hat):

 var userStore = new UserStore<ApplicationUser>(db); 
     var userManager = new UserManager<ApplicationUser>(userStore); 
     var userId = User.Identity.GetUserId(); 
     var user = userManager.FindById(userId); 

I geändert zwischen einer Arbeitslösung und dem neuesten Samens eine einzige Reihe von Codes haben, aber ich die SSO-Konfiguration zwischen den letzten beiden Samen hinzugefügt.

EDIT:

Versuchte Computer neu zu starten und das Problem weiterhin besteht, aber wenn ich mit einem anderen Benutzer versuchen, anmelden, es funktioniert gut. Beim Versuch, mit dem ersten Benutzer anmelden wieder ich einen anderen Fehler:

The provided anti-forgery token was meant for a different claims-based user than the current user. 

So habe ich versucht, in einem „InPrivate-Fenster“ und ich das ursprüngliche Problem mit dem ersten Benutzer erhalten, aber jeder andere Benutzer erhält die Fälschungs Fehler stattdessen.

EDIT 2:

Versuchte das Projekt erneut ausgeführt wird und der ursprüngliche Fehler tritt für den ersten Benutzer aber die nächst ich versuche mit wirft Anmeldung in den Fälschungs Fehler.

Nachdem versucht wird, sich mit einem anderen Benutzer anzumelden, löst der erste Benutzer auch den Anti-Fälschungsfehler aus.

EDIT 3:

Dieses spezifische Verhalten scheint IE angeschlossen werden. In Chrome und Firefox bekomme ich den ursprünglichen Fehler, aber ich kann keinen der fälschungssicheren Fehler in irgendeiner Kombination von Logins oder Benutzern replizieren, aber der erste Benutzer erhält immer die ursprüngliche Ausnahme.

Also ich denke, es ist der ursprüngliche Fehler, der das Problem für jeden Browser ist.

EDIT 4:

Da ich die genaue Zeile Code kennen, die das Problem verursacht, ich glaube, ich sicher folgendes annehmen kann, ist in irgendeiner Weise im Zusammenhang .. Ich Haltepunkte auf den folgenden festlegen:

 var userStore = new UserStore<ApplicationUser>(db); 
     var userManager = new UserManager<ApplicationUser>(userStore); 

aber nicht mehr ein Haltepunkt auf dieser Linie festgelegt:

 var userId = User.Identity.GetUserId(); 

Antwort

0

fanden schließlich die Lösung für mich in einem anderen Thread. Ich diese Option deaktiviert:

Project Properties> Build> Optimize code 

Es fixierte sowohl das ursprüngliche Problem und auch das Problem in ganz am Ende mit Haltepunkt