为了将 Article 实体的 Author 属性设置为当前经过身份验证的用户,检索完整的 ApplicationUser 至关重要
使用身份扩展,您可以使用以下代码轻松检索当前用户:
ApplicationUser currentUser = db.Users.FirstOrDefault(x => x.Id == User.Identity.GetUserId());
然而,这种方法有缺点。它需要直接数据库查询,引入额外的依赖关系以及与未来数据库更改的潜在不一致。
要克服这些限制,请使用由ASP.NET Identity 框架:
var user = UserManager.FindById(User.Identity.GetUserId());
此方法可以有效地检索当前用户,而不需要直接数据库访问。它确保与未来 API 更改的一致性,并消除引入新上下文依赖项的风险。
在控制器外部访问用户对象时,从当前 HttpContent 的 OwinContext 中检索用户 ID:
ApplicationUser user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId());
此方法可确保与由 OWIN 提供的用户管理。
以上是如何在 ASP.NET MVC 5 Identity 中高效检索当前 ApplicationUser?的详细内容。更多信息请关注PHP中文网其他相关文章!