2011-07-25 11 views
14

Duplicar posible:
difference between http.context.user and thread.currentprincipal and when to use them?Thread.CurrentPrincipal.Identity vs HttpContext.User.Identity

¿Cuál es la diferencia entre estos dos en una aplicación ASP.NET?

Sé que el HttpContext.User.Identity se establece cuando el usuario se autentica a través del FormsAuthentication. ¿Pero cuándo se establece el Thread.CurrentPrincipal.Identity?

¿Siempre tienen el mismo valor?

¿Eso sigue siendo válido para otras capas de la aplicación que no tienen acceso a un HttpContext?

Respuesta

10

HttpContext.User.Identity es el usuario que ha iniciado sesión actualmente en su aplicación web.

Thread.CurrentPrincipal se aplica solo cuando <authentication mode = "windows"/>. Normalmente este es el uso de las aplicaciones basadas en Windows (WPF Winforms, ..)

+1

'Thread.CurrentPrincipal' todavía funciona con' mode = "formas" '... – bevacqua

+1

@Nico: Pero no le proporciona el usuario de inicio de sesión actual. Le dará los detalles del usuario de Windows en su lugar. Entonces, en este caso, Thread.CurrentPrincipal no tiene mucho sentido. – CharithJ

+2

En la Autenticación de formularios, Thread.CurrentPrincipal puede no estar sincronizado desde HttpContext.User.Identity. Ver este viejo blog de [Hanselman] (http://www.hanselman.com/blog/SystemThreadingThreadCurrentPrincipalVsSystemWebHttpContextCurrentUserOrWhyFormsAuthenticationCanBeSubtle.aspx). También vea este nuevo [stackoverflow] (http://stackoverflow.com/a/16693746) – subsci

-3

si se utiliza el HttpContext.User.Identity es igual a la Thread.CurrentPrincipal

+4

No es cierto. Si hace girar un hilo en el fondo, HttpContext.User puede cambiar mientras el hilo se está ejecutando, dependiendo de cómo lo esté ejecutando. – blowdart

+1

HttpContext.Current.User será el usuario actual con sesión iniciada. Thread.CurrentPrincipal será el principal para quien ejecuta el proceso de trabajo (Thread). En el caso de una aplicación forms/wpf, tiene sentido porque el usuario al que ejecuta la aplicación es el que le interesa. –

Cuestiones relacionadas