2010-02-04 14 views
5

que tienen un controlador que recibe los datos en función del usuario actual que ha iniciado la sesión y me gustaría asignar una variable local como esto:..¿Obtener nombre de usuario en el constructor para el controlador?

public UsergroupsCustAdminController() 
    { 

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

     this._customerID = u.CustomerID; 
    } 

De alguna manera no puedo obtener el valor para los usuarios conectados en ese momento ¿Cómo debería arreglar esto? Necesito usar ese "CustomerID" en muchos lugares en mi clase de controlador.

/M

Respuesta

7

Usted está tratando de enganchar demasiado temprano. Sugerimos que los redefina OnActionExecuting y poner este código en allí, así:

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

Tienes algún ejemplo donde se muestra cómo puedo pasar esa variable en? –

+3

¿Por qué los programadores (que, supongo, no son bastante inteligentes y están bien educados) no pueden deletrear correctamente las cosas? Hay una proliferación de errores básicos que confunden "su", "allí" y "ellos son" y realmente me sorprende que alguien pueda escribir programas bastante complicados pero fallar cuando se trata de inglés básico. (Mis disculpas si el inglés no es su primer idioma) – belugabob

+3

@belugabob - Absolutamente correcto, y yo soy muy riguroso con esto. No es una pista de cómo pasó eso (si revisas mi lista de ediciones, verás muchas correcciones ortográficas, gramaticales y de puntuación). +1 por atraparme. :) –

Cuestiones relacionadas