我在CompanyName
表中添加了一个名为AspNetUsers
的新列。我希望在我的API中的查询中使用它。
我已使用[Authorized]
属性获取
User.Identity.Name
这显然得到了用户的名字。我正在寻找获得CompanyName
的方法。
我是否必须直接查询aspnetusers
表以获取此信息?
答案 0 :(得分:0)
以下方法可帮助您放置custom data。 如果这没有帮助,请提供更多信息。比如您创建的位置或检索位置的源代码。
string username = HttpContext.Current.User.Identity.Name;
var identity = new MyIdentity(username, true);
var principal = new MyPrincipal(identity, identity.Roles);
HttpContext.Current.User = principal;
答案 1 :(得分:0)
您需要创建用户的实例才能访问用户的属性,我使用UserManager类来创建用户。可能有其他方法可以完成这项工作,但这是我过去所做的。
位于控制器类的顶部:
private Microsoft.AspNet.Identity.UserManager<YourApplication.Models.ApplicationUser> um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));//new up a UserManager
现在在action方法中:
public ActionResult Index()
{
ApplicationUser user = um.FindById(User.Identity.GetUserId());//Create an instance of the user
ViewBag.CompanyName = user.CompanyName ;//Read the property
return View();
}