[英]How to get IdentityUser by Username
I have previously worked with Membership through "System.Web.Security.Membership"我以前曾通过“System.Web.Security.Membership”与会员合作
Here, you can do the following:在这里,您可以执行以下操作:
var currentUser = Membership.GetUser();
var otherUser = Membership.GetUser(username);
...giving you a MembershipUser. ...给你一个 MembershipUser。
Now, with Identity, I can find a load of ways to get the current logged in user .现在,使用 Identity,我可以找到很多方法来获取当前登录的用户。 But no way to get another user.
但是没有办法获得另一个用户。
I can use:我可以用:
var userStore = new UserStore<IdentityUser>();
var userManager = new UserManager<IdentityUser>(userStore);
var user = userManager.Find(username, password);
But that takes both username and password, with no overload for just username.但这需要用户名和密码,仅用户名没有过载。
How do i get the IdentityUser from only a username?如何仅从用户名中获取 IdentityUser?
Almost every answer I find is connected to MVC.我找到的几乎每个答案都与 MVC 相关。 This is for a WCF service, where authorization is made using Identity.
这适用于 WCF 服务,其中使用身份进行授权。 And in some cases the user is getting to the site from an other site with a generated "token" - an encrypted string, containing the username.
在某些情况下,用户使用生成的“令牌”(包含用户名的加密字符串)从其他站点访问该站点。 From here, user is logged in and a session-cookie is set, depending on users settings.
从这里,用户登录并设置会话cookie,具体取决于用户设置。
Also, is there a shorter way to get UserInformation?此外,是否有更短的方法来获取 UserInformation?
"var currentUser = Membership.GetUser(username);" “var currentUser = Membership.GetUser(用户名);”
is much more convenient than比方便多了
"var user2 = (new UserManager((new UserStore()))).Find(username, password);" "var user2 = (new UserManager((new UserStore()))).Find(username, password);"
UserManager
has UserManager<TUser>.FindByNameAsync
method. UserManager
有UserManager<TUser>.FindByNameAsync
方法。 You can try using it to find user by name.您可以尝试使用它按名称查找用户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.