Contrairement à l'ancien mécanisme d'adhésion, l'identité ASP.NET fournit un API pour accéder à l'objet utilisateur actuel. Voici comment l'obtenir :
Dans les contrôleurs ou dans d'autres zones où vous avez accès au gestionnaire d'utilisateurs par défaut, vous pouvez utiliser la méthode FindById. :
using Microsoft.AspNet.Identity; public ActionResult Create() { var user = UserManager.FindById(User.Identity.GetUserId()); return View(); }
Si vous êtes des contrôleurs extérieurs, vous pouvez utiliser le code suivant :
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); } }
Cette méthode peut être nécessaire lors de l'accès à l'utilisateur actuel depuis l'OWIN contexte, comme à partir de SignalR Hubs ou dans d'autres scénarios où les mécanismes standards ne sont pas disponibles :
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; } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!