2010-02-04 9 views
5

У меня есть контроллер, который получает данные на основе текущего пользователя, вошедшего в И я хотел бы назначить локальную переменную так:..Получить имя пользователя в конструкторе для контроллера?

public UsergroupsCustAdminController() 
    { 

     User u = _us.GetUsers(HttpContext.User.Identity.Name).First(); 

     this._customerID = u.CustomerID; 
    } 

Как-то я не могу получить значение для текущего пользователя войти в систему как я должен это исправить? Мне нужно использовать этот «CustomerID» во многих местах моего контрольного класса.

/M

ответ

7

Вы пытаетесь зайти слишком рано. Suggest переопределить OnActionExecuting и поместить этот код там, как это:

protected override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    User u = _us.GetUsers(HttpContext.User.Identity.Name).First(); 
    this._customerID = u.CustomerID; 
} 
+0

У вас есть несколько примеров, где он показывает, как я могу передать эту переменную в? –

+3

Почему программисты (кто, я полагаю, довольно умны и хорошо образованы) правильно задают вопросы? Существует множество основных ошибок, которые путают «их», «там» и «они есть», и это действительно поражает меня тем, что кто-то может писать довольно сложные программы, но терпеть неудачу, когда дело доходит до базового английского языка. (Мои извинения, если английский не является вашим первым языком) – belugabob

+3

@belugabob - Абсолютно верно, и я для этого самолюбив. Не знаю, как это произошло (если вы проверите мой список изменений, вы увидите множество исправлений, грамматик и знаков препинания). +1 за то, что выгнал меня. :) –

Смежные вопросы