Heim >Backend-Entwicklung >C++ >Wie kann ich den aktuellen Anwendungsbenutzer in der ASP.NET MVC 5-Identität effizient abrufen?

Wie kann ich den aktuellen Anwendungsbenutzer in der ASP.NET MVC 5-Identität effizient abrufen?

DDD
DDDOriginal
2024-12-25 09:37:371026Durchsuche

How to Efficiently Retrieve the Current ApplicationUser in ASP.NET MVC 5 Identity?

ASP.NET MVC 5 – Identität: Erhalten des aktuellen ApplicationUser

Um die Author-Eigenschaft einer Article-Entität auf festzulegen Für den aktuell authentifizierten Benutzer ist es wichtig, das vollständige ApplicationUser-Objekt abzurufen.

Standard Ansatz

Mithilfe der Identitätserweiterung können Sie den aktuellen Benutzer mithilfe des folgenden Codes mühelos abrufen:

ApplicationUser currentUser = db.Users.FirstOrDefault(x => x.Id == User.Identity.GetUserId());

Dieser Ansatz hat jedoch Nachteile. Es erfordert eine direkte Datenbankabfrage, wodurch zusätzliche Abhängigkeiten und potenzielle Inkonsistenzen bei zukünftigen Datenbankänderungen entstehen.

Alternativer Ansatz

Um diese Einschränkungen zu überwinden, verwenden Sie die von bereitgestellte UserManager-Klasse das ASP.NET Identity Framework:

var user = UserManager.FindById(User.Identity.GetUserId());

Diese Methode ruft den aktuellen Benutzer effizient ab, ohne dass eine direkte Eingabe erforderlich ist Datenbankzugriff. Es stellt die Konsistenz mit zukünftigen API-Änderungen sicher und eliminiert das Risiko der Einführung neuer Kontextabhängigkeiten.

Synchronisierung mit OWIN

Beim Zugriff auf das Benutzerobjekt außerhalb eines Controllers Rufen Sie die Benutzer-ID aus dem OwinContext des aktuellen HttpContent ab:

ApplicationUser user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId());

Dieser Ansatz gewährleistet die Synchronisierung mit der von OWIN bereitgestellten Benutzerverwaltung.

Das obige ist der detaillierte Inhalt vonWie kann ich den aktuellen Anwendungsbenutzer in der ASP.NET MVC 5-Identität effizient abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn