如何在ASP.NET身份提供程序中获取用户?

时间:2015-06-21 18:59:45

标签: c# asp.net-mvc security authentication asp.net-identity

借助ASP.NET成员资格提供程序:

我们可以通过configuring the UserManager with the ApplicationUser

获得登录用户
  

到目前为止,登录用户数据非常好!

问题:

有没有办法让未登录的用户

可能通过User.Identity.GetUserId()方法的替代方案 - 适用于登录用户?

通过传递用户号码或用户名?

目标:这是针对不同情况所需的,例如:

  • 获取用户名为X的用户
  • 显示用字母开头的用户名列表
  • 具有X位置的用户
  • 等...

1 个答案:

答案 0 :(得分:2)

如果您使用的是Identity 2.0+,那么exposes an IQueryable interface to the user store。您可以使用它来完成您询问的几乎所有内容:

UserManager.Users.Where(w => w.Location == "Mars").ToList();

您可以在那里使用任何类型的LINQ功能。您也可以像在其他控制器中一样直接点击DB表。如果使用EF,例如:

db.AspNetUsers.Where(w => w.Username == "Bob").AsEnumerable();