2010-04-14 14 views
6

उदाहरण के लिए: यदि मैं User.Identity.Name को पुनर्प्राप्त कर रहा हूं, तो क्या यह आता है .एसएक्सएक्सएथ कुकी या मेरे सदस्यता प्रदाता का उपयोग कर डेटाबेस से पुनर्प्राप्त किया गया है?उपयोगकर्ता कहां है। डेटा डेटा से आता है?

जब मैं उपयोगकर्ता तक पहुंचता हूं तो कोई डेटाबेस अनुरोध किया जाता है। Identity?

धन्यवाद।


संपादित करें: अभी मैं बहुत यकीन है कि यह एक प्रमाणीकरण टिकट कुकी से आता हूँ, लेकिन इस बात की पुष्टि के लिए किसी भी आधिकारिक दस्तावेज नहीं मिल रहा। किसी को?

उत्तर

1

यह आपके सवाल का जवाब चाहिए ...

"रूपों प्रमाणीकरण टिकट न केवल उपयोगकर्ता की पहचान शामिल है, लेकिन यह भी मदद करने के लिए ईमानदारी और की सुरक्षा सुनिश्चित करने में जानकारी शामिल है टोकन। "

http://www.asp.net/security/tutorials/forms-authentication-configuration-and-advanced-topics-vb

कि स्पष्टीकरण के अलावा, अवलोकन ASP.NET व्यवहार भी निष्कर्ष है कि उपयोगकर्ता नाम है, वास्तव में, ASPXAUTH कुकी में संग्रहीत का समर्थन करता है: निम्न Microsoft लेख के कुछ अंश ASP.NET नहीं करता है उपयोगकर्ता को प्रमाणीकृत होने के बाद बाद के पृष्ठ अनुरोधों पर डेटाबेस को हिट करें। डेटाबेस को मॉनिटर करने के लिए एसक्यूएल प्रोफाइलर चलाकर, जैसा कि मैंने किया था, आप इसे स्वयं साबित कर सकते हैं क्योंकि इसका उपयोग ASP.NET एप्लिकेशन द्वारा किया जाता है।

यह भी पता है कि उपयोगकर्ता नाम और प्रमाणीकरण टिकट डेटा सत्र स्थिति में संग्रहीत नहीं हैं। सुरक्षा चिंताओं को बढ़ाने के अलावा, इस तरह के कार्यान्वयन से सत्र स्थिति अक्षम होने पर एएसपी.NET सदस्यता तोड़ने का कारण बन जाएगी। यहाँ एक और स्टैक ओवरफ़्लो जवाब का संकेत फार्म प्रमाणीकरण (सदस्यता) डेटा और सत्र स्थिति एक दूसरे के साथ कुछ नहीं करना है जो:

Does FormsAuthentication.SetAuthCookie() make a session based cookie?

भी जवाब देने के लिए एक MSDN लेख, here, कि ASPXAUTH कुकी बताते हैं के लिए लिंक है कि विस्तार से, हालांकि ऊपर उल्लिखित लेख अधिक वर्तमान प्रतीत होता है।

0

.ASPXAUTH कुकी/उपयोगकर्ता। AdWords प्रमाणीकरण (विंडोज़, फॉर्म) से आता है।

आप सदस्यता के लिए उपयोगकर्ता पाने के लिए कोशिश कर रहे हैं आप

Membership.GetUser() 

या

Membership.GetUser(User.Identity.Name) 

documentation here जो एक डीबी कॉल में परिणाम होगा उपयोग करने के लिए की जरूरत है।

+0

मैं समझता हूं कि यह प्रमाणीकरण से आता है। हालांकि, जब मैं User.Identity.Name कहता हूं - मूल्य कहां से प्राप्त किया जाता है? कुकीज़ या डीबी या सत्र? – niaher

+0

कुकीज केवल प्रमाणित होने के बाद ही मौजूद हैं ... इसलिए ... सब कुछ आपकी प्रमाणीकरण योजना – Nix

1

मेरा मानना ​​है कि प्रमाणीकरण जानकारी एक सत्र के लिए विशिष्ट है और एएसपीनेट प्रक्रिया या बाहर या यहां तक ​​कि SQL सर्वर के भीतर भी बनाए रखा है। एक बार जब उपयोगकर्ता को सत्र टोकन प्रमाणित किया जाता है, तो टोकन का प्रयोग राज्य सेवा में प्रमाणित उपयोगकर्ता की जानकारी को ट्रैक करने के लिए किया जाता है। बाद के अनुरोधों पर, सत्र टोकन का उपयोग उपयोगकर्ता पहचान को पुनर्प्राप्त करने के लिए किया जाता है और जहां हमें उपयोगकर्ता द्वारा पूर्व-आबादी वाली वस्तुएं मिलती हैं। Identity.Name। यह प्रपत्र प्रमाणीकरण मॉड्यूल या विंडोज प्रमाणीकरण मॉड्यूल में प्रत्यारोपित प्रमाणीकरण के प्रकार के आधार पर लागू किया जाना चाहिए। यदि आप cookieless प्रमाणीकरण मोड पर सेट करते हैं, तो सत्र टोकन URL के भीतर प्रदर्शित होता है। एक बार सत्र समाप्त होने के बाद, सत्र से संबंधित सभी जानकारी राज्य सेवा से हटा दी जाती है।

आशा है कि यह स्पष्ट हो जाए!

+0

पर निर्भर करता है भले ही यह एक स्वीकृत उत्तर है, यह वास्तव में मेरे प्रश्न का उत्तर नहीं देता है। – niaher

+0

फिर आपने इसे क्यों स्वीकार किया? – IsmailS

+0

मुझे मजबूर होना पड़ा क्योंकि सवाल बक्षीस पर था। – niaher

1

यह आपके द्वारा उपयोग किए जा रहे सत्र के प्रकार पर निर्भर करता है। सत्रों को दो पैरामीटर का उपयोग करके भिन्न किया जा सकता है 1. कुकीज-कुकियलेस का उपयोग करें, या कुकी का उपयोग करें 2. सत्र स्थिति की जानकारी को स्टोर करने की प्रक्रिया -प्रप्रोक (प्रक्रिया में), आउटप्रोक (एएसपीनेट स्टेट सर्विस), या एसक्यूएल सर्वर।

यदि आप राज्य की जानकारी संग्रहीत करने के लिए SQL सर्वर का उपयोग करते हैं, तो सत्र डेटा लाने के लिए डेटा बेस क्वेरी निश्चित रूप से की जाएगी। अधिक जानकारी यहाँ

http://www.codeproject.com/KB/aspnet/ExploringSession.aspx

संबंधित मुद्दे