Login 如何查看登录用户的额外信息?
我有一个与公司表相关的用户表,它们之间的关系分别是多对一。很快,用户表就有了CompanyID 当一个用户登录时,我需要经常检查该公司给他识别了什么,但是使用user.Identity,我只能访问该名称 从登录用户处获取公司ID的最佳方法是什么Login 如何查看登录用户的额外信息?,login,asp.net-mvc-5,simplemembership,Login,Asp.net Mvc 5,Simplemembership,我有一个与公司表相关的用户表,它们之间的关系分别是多对一。很快,用户表就有了CompanyID 当一个用户登录时,我需要经常检查该公司给他识别了什么,但是使用user.Identity,我只能访问该名称 从登录用户处获取公司ID的最佳方法是什么 我目前使用的是简单会员身份。身份不是来自数据库,因此它不会包含所有信息。好消息是,通过ID,很容易找到用户的完整记录。使用UserManager.FindByIdAsync()并将User.Identity.GetUserId()的结果提供给它。如果需要
我目前使用的是简单会员身份。身份不是来自数据库,因此它不会包含所有信息。好消息是,通过ID,很容易找到用户的完整记录。使用
UserManager.FindByIdAsync()
并将User.Identity.GetUserId()的结果提供给它。如果需要,也有一个FindByNameAsync()
方法
编辑:这篇文章最初被标记为ASP.NET Identity,所以我认为您使用的是ASP.NET Identity,它使用UserManager类。在这种情况下,您可能没有GetUserId()。不管怎样,原则是一样的,即使您想,正如您在这里的评论中所说的,从User.Identity访问内容。为IIdentity编写一个扩展方法,该方法使用您的数据库并在users表中搜索用户名与您的用户名匹配的用户。可能看起来像这样:
public static int GetCompanyId(this IIdentity identity)
{
using (var context = new ApplicationDbContext())
{
return context.Users.Single(u => u.UserName == identity.GetUserName()).CompanyId;
}
}
然后,您可以使用User.Identity.GetCompanyId()
调用此函数,我目前使用的是简单成员身份。我不能使用UserManager,它只有Equals和ReferenceEquals方法。如何馈送User.Identity.GetUserId()?最好的办法是这样?我想知道您是否有任何方法来执行User.Identity.CompanyID.@weldsonandrade您当时可能应该以不同的方式标记您的帖子,但请查看我的编辑。对不起,我只是更改了目标。谢谢