Bagaimana cara memeriksa apakah pengguna "masuk"?


89

Saya menggunakan otentikasi formulir dengan metode di bawah ini dalam aplikasi ASP.NET saya

FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);

Bagaimana cara memeriksa apakah pengguna masuk atau tidak? Dan bagaimana saya bisa mendapatkan nama pengguna dari pengguna yang masuk?

Jawaban:


189

Saya berhasil menemukan yang benar. Itu di bawah.

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

EDIT

Penghargaan untuk hasil edit ini diberikan kepada @Gianpiero Caretti yang menyarankan ini dalam komentar.

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

35
Sedikit perbaikan untuk kode yang lebih aman: bool val1 = (System.Web.HttpContext.Current.User! = Null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated
Gianpiero

14
Di versi C # yang lebih baru, Anda dapat menggunakan User?.Identity.IsAuthenticated == true.
bradlis7

3
atau User?.Identity.IsAuthenticated ?? false, tetapi kode @ bradlis7 mungkin lebih mudah dibaca.
Michael

13

Cara paling sederhana:

if (Request.IsAuthenticated) ...

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

Melihat bahwa pendekatan ini tidak memiliki banyak suara positif, apakah ada kekurangan / masalah yang harus diperhatikan saat menggunakan pendekatan ini? Saya telah memutuskan untuk menggunakan ini dan tampaknya berhasil, sejauh ini.
pnizzle

Ini hampir sama dengan jawaban pilihan teratas tetapi kami tidak menggunakan ruang nama di sini
mai

6

Cara termudah untuk memeriksa apakah mereka diautentikasi adalah Request.User.IsAuthenticatedmenurut saya (dari memori)


1
baik kelas "Request.LogonUserIdentity" memberikan semua metode dan properti ini. Terima kasih atas tipnya.
BlueBird

1
Tidak ada @bizzard. Ini menunjukkan akun windows login atau tidak. Bahkan jika cookie Anda dihapus, Anda dapat melihat nama pengguna akun window dan login. Yang ini berhasil untuk saya. "bool val1 = System.Web.HttpContext.Current.User.Identity.IsAuthenticated"
BlueBird
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.