Come controllare che l'utente sia “loggato”?


89

Sto usando l'autenticazione del modulo con il metodo seguente nella mia applicazione ASP.NET

FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);

Come posso verificare se l'utente è connesso o meno? E come posso ottenere il nome utente di un utente connesso?

Risposte:


189

Sono riuscito a trovare quello corretto. È sotto.

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

MODIFICARE

Il merito di questa modifica va a @Gianpiero Caretti che lo ha suggerito nel commento.

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

35
Solo una piccola correzione per un codice più sicuro: bool val1 = (System.Web.HttpContext.Current.User! = Null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated
Gianpiero

14
Nelle versioni più recenti di C #, puoi usare User?.Identity.IsAuthenticated == true.
bradlis7

3
oppure User?.Identity.IsAuthenticated ?? false, ma il codice di @ bradlis7 è probabilmente più facile da leggere.
Michael

13

Il modo più semplice:

if (Request.IsAuthenticated) ...

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

Visto che questo approccio non ha molti voti positivi, ci sono inconvenienti / problemi a cui prestare attenzione quando si utilizza questo approccio? Ho deciso di usarlo e sembra funzionare, finora.
pnizzle

È quasi uguale alla risposta più votata, ma non stiamo usando spazi dei nomi qui
maggio

6

Il modo più semplice per verificare se sono autenticati è Request.User.IsAuthenticatedcredo (dalla memoria)


1
bene la classe "Request.LogonUserIdentity" fornisce tutti questi metodi e proprietà. Grazie per il consiglio.
BlueBird

1
No @beardtwizzle. Questo mostra l'account di Windows connesso o meno. Anche se i cookie vengono rimossi, puoi vedere il nome utente dell'account della finestra e accedere. Questo ha funzionato per me. "bool val1 = System.Web.HttpContext.Current.User.Identity.IsAuthenticated"
BlueBird
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.