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.