2010-02-04 15 views
40

एमएसडीएन कोड नमूना विवरण: निम्न कोड उदाहरण यह निर्धारित करने के लिए IsAuthenticated संपत्ति का उपयोग करता है कि वर्तमान अनुरोध प्रमाणीकृत किया गया है या नहीं। अगर इसे प्रमाणित नहीं किया गया है, तो अनुरोध किसी दूसरे पृष्ठ पर रीडायरेक्ट किया जाता है जहां उपयोगकर्ता वेब प्रमाणन में अपने प्रमाण-पत्र दर्ज कर सकते हैं। यह एक सामान्य तकनीक है जो किसी एप्लिकेशन के लिए डिफ़ॉल्ट पृष्ठ में उपयोग की जाती है।अनुरोध कैसे करता है। प्रमाणीकृत काम?

यह बहुत अच्छा है, लेकिन कोई विस्तार या कुछ भी ...

वास्तव में इसके लिए जाँच कर रहा है क्या? मैं इसे सच कैसे सेट करूं?

अतिरिक्त मील जाओ: मुझे इसके बारे में अधिक विस्तृत दस्तावेज कहां मिलेगा?

उत्तर

52

Google के लिए धन्यवाद, मुझे पोस्ट @ cboardP का कैश संस्करण his answer में संदर्भित करता है। मूल लिंक टूटा हुआ है (2012-12-06) क्योंकि मैं दूसरों के संदर्भ के रूप में उस उत्तर/पोस्ट को पोस्ट कर रहा हूं।

Original question जवाब नीचे संदर्भित करता है कि करने के लिए:

मैं है कि मुझे फिट बैठता दे रही है एक रूपों आधारित अनुप्रयोग है। मैंने देखा कि, में एक स्थान जहां IsAuthenticated संपत्ति सही थी, अब यह झूठा था और उम्मीद के अनुसार काम नहीं कर रहा था। मुझे आश्चर्य है कि मेरे पास सेटिंग अमान्य है ?? डैनियल केंट द्वारा क्या constitues में प्रवेश करने

उत्तर -

किसी को भी मुझे बता सकते हैं सही पर IsAuthenticated संपत्ति क्या सेट:।

Request.IsAuthenticated सिर्फ रूपों authentciation के लिए नहीं है - यह वैध है कोई फर्क नहीं पड़ता कि किस तरह के प्रमाणीकरण का उपयोग किया जा रहा है (विंडोज़, पासपोर्ट, फॉर्म या हमारी खुद की कस्टम योजना)

HttpRequest.IsAuthenticated उपयोग के दौरान सही होगा अनुरोध प्रमाणीकृत किया गया है। अनिवार्य रूप से, यह संपत्ति जानकारी Context.User.Identity.IsAuthenticated के रूप में जानकारी प्रदान करती है।

अनुरोध की शुरुआत में, Context.User.Idenity में एक शून्य उपयोगकर्ता नाम के साथ GenericIdentity शामिल है।इस ऑब्जेक्ट के लिए IsAuthenticated संपत्ति वापसी false तो Request.IsAuthenticatedfalse होगी। एक प्रमाणीकरण मॉड्यूल Application_AuthenticateRequest घटना संभालती है और जब सफलतापूर्वक प्रमाणित करता है उपयोगकर्ता यह एक नया IIdentity उद्देश्य यह है कि अपने IsAuthenticated संपत्ति से true वापस आ जाएगी साथ बदलता है GenericIdentity Context.User.Identity में। Request.IsAuthenticated फिर true लौटाएगा।

प्रपत्र प्रमाणीकरण के मामले में, प्रपत्र प्रमाणीकरण मॉड्यूल उपयोगकर्ता को प्रमाणित करने के लिए प्रमाणीकरण कुकी में निहित एन्क्रिप्टेड प्रमाणीकरण टिकट का उपयोग करता है। एक बार ऐसा करने के बाद, यह GenericIdentityContext.User.Identity में FormsIdentity ऑब्जेक्ट के साथ TrueIsAuthenticated संपत्ति से True देता है।

तो, true को IsAuthenticated की स्थापना वास्तव में में प्रवेश करने के लिए अलग है। जेफ कहते हैं, रूपों प्रमाणीकरण में लॉग इन करने होता है जब प्रमाणीकरण टिकट उत्पन्न होते हैं और एक कुकी के रूप में ग्राहक के लिए भेजा जाता है। (RedirectFromLoginPage या SetAuthCookie) हम IsAuthenticated के साथ क्या बात कर रहे हैं प्रमाणीकरण है जो प्रत्येक पृष्ठ अनुरोध के साथ होता है। लॉग इन तब होता है जब कोई उपयोगकर्ता अपने क्रेडेंशियल्स में प्रवेश करता है और टिकट जारी किया जाता है, प्रमाणीकरण प्रत्येक अनुरोध के साथ होता है।

+0

यहां Google के कैश किए गए उत्तर का एक लिंक है: https://webcache.googleusercontent.com/search?q=cache:t4JNfp8peQIJ:https://forums.asp.net/t/1416811.aspx%3FQuestion%2Babout%2Bmethods% 2Bto% 2Bdetect% 2Bif% 2BA% 2Buser% 2Bis% 2Blogged% 2Bin – tylerlindell

8

डैनियल केंट here द्वारा एक विस्तृत विस्तृत पोस्ट है। (स्निपेट)

Request.IsAuthenticated न सिर्फ रूपों authentciation के लिए है - यह कोई फर्क नहीं पड़ता प्रमाणीकरण की किस प्रकार किया जा रहा है (विंडोज, पासपोर्ट, फार्म या अपने स्वयं के कस्टम योजना)

मान्य है

HttpRequest.Is प्रमाणीकृत सत्य होगा जब उपयोगकर्ता अनुरोध कर रहा है प्रमाणीकृत किया गया है। अनिवार्य रूप से, यह संपत्ति जानकारी Context.User.Identity.Is प्रमाणीकृत के रूप में प्रदान करती है।

+4

लिंक दुर्भाग्य से टूटा हुआ है। मुझे Google के माध्यम से एक कैश संस्करण मिला और बेहतर स्वरूपण के लिए अपनी सामग्री को एक अलग उत्तर में पोस्ट किया। – Oliver

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