उपयोगकर्ता की जांच कैसे की जाती है "लॉग इन"?


89

मैं अपने ASP.NET एप्लिकेशन में नीचे विधि के साथ फॉर्म प्रमाणीकरण का उपयोग कर रहा हूं

FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);

मैं कैसे जांचूं कि उपयोगकर्ता लॉग इन है या नहीं? और मैं एक लॉग इन उपयोगकर्ता का उपयोगकर्ता नाम कैसे प्राप्त कर सकता हूं?

जवाबों:


189

मैं सही खोजने में कामयाब रहा। यह नीचे है।

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

संपादित करें

इस संपादन का श्रेय @Gianpiero Caretti को जाता है जिन्होंने टिप्पणी में यह सुझाव दिया था।

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

35
सुरक्षित कोड के लिए बस थोड़ा सा फिक्स: bool val1 = (System.Web.HttpContext.Cser.User! =
Null

14
C # के नए संस्करणों में, आप उपयोग कर सकते हैं User?.Identity.IsAuthenticated == true
bradlis7

3
या User?.Identity.IsAuthenticated ?? false, लेकिन @ bradlis7 का कोड शायद पढ़ना आसान है।
माइकल


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

यह देखते हुए कि इस दृष्टिकोण में इतने सारे बदलाव नहीं हैं, क्या इस दृष्टिकोण का उपयोग करते समय देखने के लिए कोई कमियां / मुद्दे हैं? Ive ने इसका उपयोग करने का फैसला किया और यह अब तक काम कर रहा है।
pnizzle

यह लगभग शीर्ष मतदान के जवाब के समान है, लेकिन हम यहां नाम स्थान का उपयोग नहीं कर रहे हैं
माई

6

यह जांचने का सबसे आसान तरीका है कि क्या वे प्रमाणित हैं, Request.User.IsAuthenticatedमुझे लगता है कि (स्मृति से)


1
अच्छी तरह से "Request.LogonUserIdentity" वर्ग इन सभी तरीकों और गुणों को देता है। पारितोषिक के लिए धन्यवाद।
ब्लूबर्ड

1
कोई @beardtwizzle नहीं। यह विंडोज़ अकाउंट लॉग इन या नहीं दिखा रहा है। यहां तक ​​कि अगर आपकी कुकीज़ हटा दी जाती हैं, तो आप उपयोगकर्ता को विंडो खाते का नाम और लॉगिन देख सकते हैं। यह एक मेरे लिए काम किया। "बूल वैल 1 =
सिस्टम। वेब। एचटीटीपी कॉन्टेक्स्ट। समांतर।उपयोग।आदमी।सुचित
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.