Kullanıcının "oturum açmış" olup olmadığı nasıl kontrol edilir?


89

ASP.NET uygulamamda aşağıdaki yöntemle form kimlik doğrulaması kullanıyorum

FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);

Kullanıcının oturum açıp açmadığını nasıl kontrol ederim? Ve oturum açmış bir kullanıcının kullanıcı adını nasıl alabilirim?

Yanıtlar:


189

Doğru olanı bulmayı başardım. Aşağıda.

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

DÜZENLE

Bu düzenlemenin itibarı, yorumda bunu öneren @Gianpiero Caretti'ye gidiyor .

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

35
Daha güvenli kod için küçük bir düzeltme: bool val1 = (System.Web.HttpContext.Current.User! = Null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated
— Gianpiero

14
C # 'ın daha yeni sürümlerinde kullanabilirsiniz User?.Identity.IsAuthenticated == true.
— bradlis7

3
veya User?.Identity.IsAuthenticated ?? false, ancak @ bradlis7 kodunun okunması muhtemelen daha kolaydır.
— Michael

13

En basit yol:

if (Request.IsAuthenticated) ...

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

Bu yaklaşımın çok fazla olumlu oyu olmadığını görünce, bu yaklaşımı kullanırken dikkat etmeniz gereken herhangi bir sakınca / sorun var mı? Bunu kullanmaya karar verdim ve şu ana kadar işe yarıyor gibi görünüyor.
— pnizzle

Neredeyse en çok oylanan cevapla aynı ama burada ad alanlarını kullanmıyoruz
— mai

6

Doğrulanıp doğrulanmadığını kontrol etmenin en kolay yolu Request.User.IsAuthenticatedbence (bellekten)


1
iyi "Request.LogonUserIdentity" sınıfı tüm bu yöntemleri ve özellikleri verir. Bahşiş için teşekkürler.
— BlueBird

1
Hayır @beardtwizzle. Bu, Windows hesabının oturum açıp açmadığını gösteriyor. Çerezleriniz kaldırılsa bile, pencere hesabının kullanıcı adını görebilir ve oturum açabilirsiniz. Bu benim için çalıştı. "bool
— val1
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.