Im Gegensatz zum alten Mitgliedschaftsmechanismus bietet ASP.NET Identity eine API für den Zugriff auf das aktuelle Benutzerobjekt. So erhalten Sie es:
In Controllern oder anderen Bereichen, in denen Sie Zugriff auf den Standardbenutzermanager haben, können Sie die FindById-Methode verwenden :
using Microsoft.AspNet.Identity; public ActionResult Create() { var user = UserManager.FindById(User.Identity.GetUserId()); return View(); }
Wenn Sie kein Controller sind, können Sie den folgenden Code verwenden:
using Microsoft.AspNet.Identity; using System.Web; public class MyCustomService { private HttpContext _httpContext; public MyCustomService(HttpContext httpContext) { _httpContext = httpContext; } public ApplicationUser GetCurrentUser() { var userId = _httpContext.User.Identity.GetUserId(); var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())); return userManager.FindById(userId); } }
Diese Methode kann erforderlich sein, wenn über den OWIN-Kontext auf den aktuellen Benutzer zugegriffen wird, z von SignalR Hubs oder in anderen Szenarien, in denen die Standardmechanismen nicht verfügbar sind:
using Microsoft.AspNet.Identity; using System.Web; public class MySignalRHub : Hub { public ApplicationUser GetCurrentUser() { var user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId()); return user; } }
Das obige ist der detaillierte Inhalt vonWie rufe ich den aktuellen Anwendungsbenutzer in der ASP.NET MVC 5-Identität ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!