MVC6身份自定义字段检索

时间:2015-11-25 16:05:38

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

我在CompanyName表中添加了一个名为AspNetUsers的新列。我希望在我的API中的查询中使用它。

我已使用[Authorized]属性获取

User.Identity.Name

这显然得到了用户的名字。我正在寻找获得CompanyName的方法。

我是否必须直接查询aspnetusers表以获取此信息?

2 个答案:

答案 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();
        }