Jak sprawdzić, czy użytkownik jest „zalogowany”?


89

Używam uwierzytelniania formularza z poniższą metodą w mojej aplikacji ASP.NET

FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);

Jak sprawdzić, czy użytkownik jest zalogowany, czy nie? Jak mogę uzyskać nazwę zalogowanego użytkownika?

Odpowiedzi:


189

Udało mi się znaleźć właściwy. To jest poniżej.

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

EDYTOWAĆ

Podziękowania tej zmiany należą do @Gianpiero Caretti, który zasugerował to w komentarzu.

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

35
Tylko mała poprawka dla bezpieczniejszego kodu: bool val1 = (System.Web.HttpContext.Current.User! = Null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated
Gianpiero

14
W nowszych wersjach C # można używać User?.Identity.IsAuthenticated == true.
bradlis7

3
lub User?.Identity.IsAuthenticated ?? false, ale kod @ bradlis7 jest prawdopodobnie łatwiejszy do odczytania.
Michael


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

Widząc, że to podejście nie ma tak wielu pozytywnych opinii, czy są jakieś wady / problemy, na które należy uważać podczas korzystania z tego podejścia? Postanowiłem to wykorzystać i wydaje się, że jak dotąd działa.
pnizzle

To prawie to samo, co najczęściej głosowana odpowiedź, ale nie używamy tutaj przestrzeni nazw
mai

6

Request.User.IsAuthenticatedMyślę, że najłatwiejszym sposobem sprawdzenia, czy są uwierzytelnione (z pamięci)


1
well "Request.LogonUserIdentity" zawiera wszystkie te metody i właściwości. Dzięki za wskazówkę.
BlueBird

1
Nie @beardtwizzle. To pokazuje, czy konto Windows jest zalogowane, czy nie. Nawet jeśli usunięto pliki cookie, możesz zobaczyć nazwę użytkownika konta Windows i login. Ten pracował dla mnie. "bool val1 = System.Web.HttpContext.Current.User.Identity.IsAuthenticated"
BlueBird
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.