如何让当前用户获得另一个属性asp mvc 5

时间:2017-02-16 18:10:41

标签: c# asp.net-mvc razor

我有一个情况。

AspNetUsers有一个名为AccType的列,它是int类型

如果AccType是1 =客户

如果AccType是2 =经理。

我可以通过User.Identity.GetUserId()

访问当前记录的用户ID

如果声明如下,我正在努力做到:

    if(User.Identity.GetUserId().AccType == 1){
       redirect to specific page..
    }elseif (User.Identity.GetUSerId().AccType == 2){
     redirect to 2nd specific page..
    }

User.Identity.GetUserId().AccType现在正在运作。

请帮忙!谢谢!

1 个答案:

答案 0 :(得分:1)

User.Identity.GetUserId()返回当前登录用户的ID。但是,如果要访问其属性,则需要获取实际的用户对象。解决这个问题的一种方法是:

var userId = this.User.Identity.GetUserId();
var user = this.Request.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(userId);

更方便的方法是在控制器中为ApplicationUser创建一个属性,然后重用代码。

属性:

public ApplicationUserManager UserManager
{
    get
    {
        return this.Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
    }
}

获取用户:

var user = this.UserManager
    .FindById(this.User.Identity.GetUserId());