我目前正在开发一个用于构建ASP.Net MVC项目的Web API。我习惯使用Membership和实体框架。
我们决定使用Identity框架来管理用户。我对UserManager和UserStore了解不足。我的问题是我无法弄清楚如何获取对UserManager对象的引用。我想要这个的原因是我可以测试用户是否被锁定。我是否需要实现自定义UserManager才能实现此功能?我的印象是默认的UserManager可以实现这个目的吗?
答案 0 :(得分:0)
我的问题是我无法弄清楚如何获取对UserManager对象的引用。
如果您使用OWIN和Identity 2.0的所有默认实现,那么您只需调用:
var userManager = System.Web.HttpContext.Current
.GetOwinContext()
.GetUserManager<MyApplicationUserManager>();
// where MyApplicationUserManager is your derived type
然后您需要访问用户才能获得ID:
var userId = User.Identity.GetUserId();
并调用其中一种方法:
var isLockedOut = await userManager.IsLockedOutAsync(userId);
或non-async extension method version:
using Microsoft.AspNet.Identity;
var isLockedOut = userManager.IsLockedOut(userId);