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.