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.