关于IdentityManager在身份框架中的困惑

时间:2014-08-04 15:56:55

标签: c# asp.net entity-framework authentication asp.net-identity

我目前正在开发一个用于构建ASP.Net MVC项目的Web API。我习惯使用Membership和实体框架。

我们决定使用Identity框架来管理用户。我对UserManager和UserStore了解不足。我的问题是我无法弄清楚如何获取对UserManager对象的引用。我想要这个的原因是我可以测试用户是否被锁定。我是否需要实现自定义UserManager才能实现此功能?我的印象是默认的UserManager可以实现这个目的吗?

1 个答案:

答案 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);