首页 > 后端开发 > C++ > 如何在 ASP.NET MVC 5 Identity 中高效检索当前 ApplicationUser?

如何在 ASP.NET MVC 5 Identity 中高效检索当前 ApplicationUser?

DDD
发布: 2024-12-25 09:37:37
原创
1019 人浏览过

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

ASP.NET MVC 5 - 身份:获取当前 ApplicationUser

为了将 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 更改的一致性,并消除引入新上下文依赖项的风险。

与 OWIN 同步

在控制器外部访问用户对象时,从当前 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板