ASP.NET MVC 5:检索当前 ApplicationUser
在 ASP.NET MVC 5 的 Identity 框架中访问当前登录的 ApplicationUser 需要一个具体的方法。与旧的Membership机制不同,Identity提供了与用户数据交互的一致接口。
检索ApplicationUser对象
获取当前ApplicationUser的完整对象,不要直接查询数据库。相反,请使用提供的 API:
var user = UserManager.FindById(User.Identity.GetUserId());
对于异步操作,请使用:
var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
确保包含以下 using 语句:
using Microsoft.AspNet.Identity;
访问用户 ID
在控制器之外,用户 ID 可以检索自:
System.Web.HttpContext.Current.User.Identity.GetUserId();
场景:访问 ApplicationDbContext 和 UserManager
如果您不在 Account 控制器中,请将这些属性和构造函数代码添加到您的控制器中:
protected ApplicationDbContext ApplicationDbContext { get; set; } protected UserManager<ApplicationUser> UserManager { get; set; } public YourController() { this.ApplicationDbContext = new ApplicationDbContext(); this.UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(this.ApplicationDbContext)); }
Azure 数据库注意事项
将 Identity Framework 与远程 Azure 数据库连接结合使用时,您可能会遇到“错误:19 - 物理连接不可用”消息。要解决此问题,请在项目中实现自定义 SqlAzureExecutionStrategy。
以上是如何在 ASP.NET MVC 5 中检索当前登录的 ApplicationUser?的详细内容。更多信息请关注PHP中文网其他相关文章!