我有一个情况。
AspNetUsers有一个名为AccType
的列,它是int类型
如果AccType
是1 =客户
如果AccType
是2 =经理。
我可以通过User.Identity.GetUserId()
如果声明如下,我正在努力做到:
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
现在正在运作。
请帮忙!谢谢!
答案 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());