【问题标题】:How to get IdentityUser by Username如何通过用户名获取 IdentityUser
【发布时间】:2024-04-10 13:10:02
【问题描述】:

我之前曾通过“System.Web.Security.Membership”与会员合作

在这里,您可以执行以下操作:

var currentUser = Membership.GetUser();
var otherUser = Membership.GetUser(username);

...给你一个 MembershipUser。

现在,借助 Identity,我可以找到很多方法来获取当前登录用户。 但没有办法获得其他用户。

我可以使用:

var userStore = new UserStore<IdentityUser>();
var userManager = new UserManager<IdentityUser>(userStore);
var user = userManager.Find(username, password);

但这需要用户名和密码,仅用户名不会超载。

如何仅从用户名中获取 IdentityUser?

我找到的几乎每个答案都与 MVC 相关。 这适用于 WCF 服务,其中使用身份进行授权。在某些情况下,用户使用生成的“令牌”(包含用户名的加密字符串)从其他站点访问该站点。从这里,用户登录并设置会话cookie,具体取决于用户设置。

另外,有没有更短的方法来获取 UserInformation?

"var currentUser = Membership.GetUser(username);"

方便多了

"var user2 = (new UserManager((new UserStore()))).Find(username, password);"

【问题讨论】:

    标签: asp.net wcf asp.net-identity


    【解决方案1】:

    UserManagerUserManager&lt;TUser&gt;.FindByNameAsync 方法。您可以尝试使用它按名称查找用户。

    【讨论】: