2010-02-04 11 views
5

Mam kontroler, który pobiera dane na podstawie bieżącego użytkownika, który jest zalogowany i chciałbym przypisać zmiennej lokalnej tak:..Uzyskaj nazwę użytkownika w konstruktorze kontrolera?

public UsergroupsCustAdminController() 
    { 

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

     this._customerID = u.CustomerID; 
    } 

Jakoś nie mogę uzyskać wartość dla bieżącego użytkownika zalogowanego w jaki powinienem to naprawić? Muszę użyć tego "CustomerID" w wielu miejscach w mojej klasie kontrolnej.

/M

Odpowiedz

7

Próbujesz wejść za wcześnie. Proponuję zastąpić OnActionExecuting i umieścić ten kod tam coś takiego:

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

Masz jakiś przykład, w którym pokazuje, jak mogę przekazać tę zmienną w? –

+3

Dlaczego programiści (którzy, jak zakładam, są dość inteligentni i dobrze wykształceni) poprawnie pisują rzeczy? Istnieje wiele podstawowych błędów, które mylą "ich", "tam" i "są". Naprawdę zdumiewa mnie, że ktoś może pisać dość skomplikowane programy, ale nie udaje mu się, jeśli chodzi o podstawowy język angielski. (Przepraszam, jeśli angielski nie jest twoim pierwszym językiem) – belugabob

+3

@belugabob - Absolutnie rację, i sam jestem tym pedagogiem. Nie wiadomo, jak to się stało (jeśli zaznaczysz moją listę zmian, zobaczysz wiele poprawek w pisowni, gramatyce i interpunkcji). +1 za złapanie mnie. :) –

Powiązane problemy