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?

Burung biru
sumber

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
Burung biru
sumber
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) ...
Keith
sumber
6
if (User.Identity.IsAuthenticated)
{
    Page.Title = "Home page for " + User.Identity.Name;
}
else
{
    Page.Title = "Home page for guest user.";
}
Yanga
sumber
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)

isNaN1247
sumber
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