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.
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.
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.
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!