0

Umwelt: es MVC3 SqlMembershipProviderWo kann HttpContext.User eingestellt werden?

Ich habe eine leere

public void Application_AuthenticateRequest(object sender, EventArgs e) {} 

in der MvcApplication Klasse in Global.asax.cs und einen Haltepunkt setzen. Es wurde bei jedem Seitenzugriff gefeuert. Der Absender ist vom Typ MvcApplication, der über eine -Eigenschaft Eigenschaft und eine Context Eigenschaft verfügt.

Wenn ich nicht angemeldet, Benutzer und Context .User sind null.

Wenn ich angemeldet bin, Benutzer und Context .User werden einen Generic gesetzt enthält mein Namen angemeldet.

So scheint es, dass SqlMemberShipProvider (wenn nicht, wer) das Benutzerobjekt setzt. Darf ich wissen, wie/wo das gemacht wird?

Danke.

+0

Ich nehme an, Sie verwenden Mitgliedschaft zusammen mit FormsAuthentication? – mortb

Antwort

0

Ich nehme an, Sie verwenden Mitgliedschaft zusammen mit FormsAuthentication? Vielleicht zusammen mit Login-Kontrolle? Wenn Sie FormsAuthentication verwenden, liest es FormsAuthenticationModule das Identitäts-Cookie aus dem Browser und erstellt dann das IPrincipal Objekt aus diesem Cookie.

+0

Ja zu all Ihren Fragen. Die eigentliche Frage, die ich stellen wollte war, wie FormsAuthenticationModule auf das MvcApplication-Objekt zugreifen, um das IPrincipal festzulegen. –

+0

Mit dotPeek (http://www.jetbrains.com/decompiler/) suchen Sie nach OnAuthenticate in FormsAuthenticationModule. Was es tut, ist im Grunde HttpContext.Current.Principal = neue Principal (...) – mortb

+0

Sorry, sollte HttpContext.User = new Principal (...) Ich habe es nicht versucht, aber vielleicht können Sie Ihre eigenen zuweisen Wert zu HttpContext.Current.User in Application_AuthenticateRequest Otherwize Sie können Ihr eigenes Modul schreiben, um Authentizität zu behandeln – mortb