2017-02-16 11 views
0

У меня возникла ситуация.Как получить текущего пользователя другое свойство asp mvc 5

AspNetUsers имеет столбец под названием AccType, который является целым типом

Если 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

я предполагаю GetUserId возвращает UserId и не объект? – Forklift

+0

Почему вы не используете «Роли» вместо этого? – Valkyrie

+0

Просто потому, что у меня есть другая цель ... –

ответ

0

User.Identity.GetUserId() возвращает идентификатор текущего пользователя. Однако, если вы хотите получить доступ к своим свойствам, вам нужно получить фактический объект пользователя. Один из способов этого является следующее:

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()); 
Смежные вопросы