Wie überprüfe ich, ob der Benutzer "angemeldet" ist?


88

Ich verwende die Formularauthentifizierung mit der folgenden Methode in meiner ASP.NET-Anwendung

FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);

Wie überprüfe ich, ob der Benutzer angemeldet ist oder nicht? Und wie kann ich den Benutzernamen eines angemeldeten Benutzers erhalten?

Antworten:


187

Ich habe es geschafft, den richtigen zu finden. Es ist unten.

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

BEARBEITEN

Der Verdienst dieser Bearbeitung geht an @Gianpiero Caretti, der dies in einem Kommentar vorgeschlagen hat.

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

35
Nur eine kleine Korrektur für sichereren Code: bool val1 = (System.Web.HttpContext.Current.User! = Null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated
Gianpiero

14
In neueren Versionen von C # können Sie verwenden User?.Identity.IsAuthenticated == true.
Bradlis7

3
oder User?.Identity.IsAuthenticated ?? false, aber der Code von @ bradlis7 ist wahrscheinlich leichter zu lesen.
Michael

13

Der einfachste Weg:

if (Request.IsAuthenticated) ...

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

Gibt es Nachteile / Probleme, die bei der Verwendung dieses Ansatzes zu beachten sind, da dieser Ansatz nicht so viele positive Stimmen hat? Ich habe mich dafür entschieden und es scheint bisher zu funktionieren.
pnizzle

Es ist fast das gleiche wie die oben Antwort gestimmt , aber wir sind nicht mit Namespaces hier
mai

6

Der einfachste Weg, um zu überprüfen, ob sie authentifiziert sind, ist Request.User.IsAuthenticatedmeiner Meinung nach (aus dem Speicher)


1
Die Klasse "Request.LogonUserIdentity" bietet alle diese Methoden und Eigenschaften. Danke für den Tipp.
BlueBird

1
Kein @beardtwizzle. Dies zeigt das angemeldete Windows-Konto an oder nicht. Selbst wenn Ihre Cookies entfernt wurden, können Sie den Benutzernamen des Fensterkontos und die Anmeldung sehen. Dieser hat für mich gearbeitet. "bool val1 = System.Web.HttpContext.Current.User.Identity.IsAuthenticated"
BlueBird
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.