¿Cómo comprobar si el usuario está "conectado"?


89

Estoy usando la autenticación de formulario con el método siguiente en mi aplicación ASP.NET

FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);

¿Cómo verifico si el usuario está conectado o no? ¿Y cómo puedo obtener el nombre de usuario de un usuario registrado?

Respuestas:


189

Me las arreglé para encontrar el correcto. Está abajo.

bool val1 = System.Web.HttpContext.Current.User.Identity.IsAuthenticated

EDITAR

El crédito de esta edición es para @Gianpiero Caretti, quien sugirió esto en un comentario.

bool val1 = (System.Web.HttpContext.Current.User != null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated

35
Solo una pequeña corrección para un código más seguro: bool val1 = (System.Web.HttpContext.Current.User! = Null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated
Gianpiero

14
En las versiones más recientes de C #, puede usar User?.Identity.IsAuthenticated == true.
bradlis7

3
o User?.Identity.IsAuthenticated ?? false, pero el código de @ bradlis7 es probablemente más fácil de leer.
Michael

13

La forma más sencilla:

if (Request.IsAuthenticated) ...

6
if (User.Identity.IsAuthenticated)
{
    Page.Title = "Home page for " + User.Identity.Name;
}
else
{
    Page.Title = "Home page for guest user.";
}

Dado que este enfoque no tiene tantos votos a favor, ¿hay algún inconveniente / problema a tener en cuenta al utilizar este enfoque? He decidido usar esto y parece funcionar, hasta ahora.
pnizzle

Es casi lo mismo que la respuesta más votada, pero no estamos usando espacios de nombres aquí
mai

6

La forma más fácil de verificar si están autenticados es Request.User.IsAuthenticatedcreo (de memoria)


1
bueno, la clase "Request.LogonUserIdentity" proporciona todos estos métodos y propiedades. Gracias por el consejo.
BlueBird

1
No @beardtwizzle. Esto muestra la cuenta de Windows conectada o no. Incluso si se eliminan las cookies, puede ver el nombre de usuario de la cuenta de ventana y el inicio de sesión. Este funcionó para mí. "bool val1 = System.Web.HttpContext.Current.User.Identity.IsAuthenticated"
BlueBird
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.