Comment vérifier que l'utilisateur est «connecté»?


89

J'utilise l'authentification par formulaire avec la méthode ci-dessous dans mon application ASP.NET

FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);

Comment vérifier si l'utilisateur est connecté ou non? Et comment puis-je obtenir le nom d'utilisateur d'un utilisateur connecté?

Réponses:


189

J'ai réussi à trouver le bon. C'est ci-dessous.

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

ÉDITER

Le mérite de cette modification revient à @Gianpiero Caretti qui l'a suggéré en commentaire.

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

35
Juste un petit correctif pour un code plus sûr: bool val1 = (System.Web.HttpContext.Current.User! = Null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated
— Gianpiero

14
Dans les versions plus récentes de C #, vous pouvez utiliser User?.Identity.IsAuthenticated == true.
— bradlis7

3
ou User?.Identity.IsAuthenticated ?? false, mais le code de @ bradlis7 est probablement plus facile à lire.
— Michael

13

Le moyen le plus simple:

if (Request.IsAuthenticated) ...

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

Étant donné que cette approche n'a pas beaucoup de votes positifs, y a-t-il des inconvénients / problèmes à surveiller lors de l'utilisation de cette approche? J'ai décidé de l'utiliser et cela semble fonctionner, jusqu'à présent.
— pnizzle

C'est presque la même chose que la réponse la plus votée, mais nous n'utilisons pas d'espaces de noms ici
— mai

6

Le moyen le plus simple de vérifier s'ils sont authentifiés est Request.User.IsAuthenticatedje pense (de mémoire)


1
bien la classe "Request.LogonUserIdentity" donne toutes ces méthodes et propriétés. Merci pour le conseil.
— BlueBird

1
Pas de @beardtwizzle. Cela montre le compte Windows connecté ou non. Même si vos cookies sont supprimés, vous pouvez voir le nom d'utilisateur du compte de fenêtre et vous connecter. Celui-ci a fonctionné pour moi. "bool val1 = System.Web.HttpContext.Current.User.Identity.IsAuthenticated"
— BlueBird
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.