2011-01-03 6 views
5

हम इस बारे में चर्चा कर रहे हैं कि फॉर्म प्रमाणीकरण वास्तव में कैसे काम करता है।क्या नेट फॉर्म प्रमाणीकरण सत्र की आवश्यकता है?

क्या ऐसी जानकारी है जो उपयोगकर्ता को कुकी में संग्रहीत में लॉग इन होने के रूप में पहचानती है, या सत्र में संग्रहीत कुछ जानकारी है?

उत्तर

12

प्रमाणीकृत होने वाले उपयोगकर्ता के बारे में जानकारी कुकी में FormsAuthenticationTicket में संग्रहीत की जाती है, डिफ़ॉल्ट रूप से नाम दिया जाता है .एएसएक्सएक्स

उपयोगकर्ता के सत्र के बारे में जानकारी प्रमाणीकरण के बारे में जानकारी से अलग है। सत्र के लिए पहचानकर्ता को कुकी (प्रमाणीकरण कुकी से एक अलग कुकी) में संग्रहीत किया जा सकता है या Henk ने यूके के हिस्से के रूप में एक कुकीज सत्र में उल्लिखित किया है।

उपयोगकर्ता के सत्र में प्रमाणीकरण के बारे में कुछ जानकारी संग्रहीत करने में समस्या यह है कि PostAcquireRequestState में प्रसंस्करण पाइपलाइन में प्रमाणीकरण ईवेंट (5 घटनाओं बाद में आईआईआरसी) के कुछ समय बाद सत्र उपलब्ध नहीं है। इसका मतलब है कि प्रमाणीकरण के बाद तक सत्र में प्रमाणीकरण डेटा तक पहुंच नहीं होगी!

सत्र में डेटा स्टोर करना और उस डेटा के साथ IIdentity और IPrincipal को ओवरराइट करना संभव है, लेकिन इसका मतलब यह है कि उपयोगकर्ता की पहचान सत्र के बाद घटनाओं के लिए कुछ डेटा होगी और सत्र के बाद घटनाओं के लिए अलग-अलग डेटा होगा उपलब्ध है, जो एक समस्या हो सकती है या नहीं भी हो सकती है। इसके अलावा, आप शायद कुछ तरीकों से सत्र में डेटा को क्रिप्टोग्राफ़िक रूप से सुरक्षित करना चाहते हैं।

अपने शीर्षक प्रश्न का उत्तर देने के लिए, प्रपत्र प्रमाणीकरण सत्र की आवश्यकता नहीं है; वे अलग-अलग उद्देश्यों के लिए आवश्यक विशिष्ट संस्थाएं हैं।

3

फ़ॉर्म के प्रमाणीकरण काम करता है के लिए, आप नीचे दिए गए लिंक की जाँच कर सकते हैं:

प्रपत्र वेब खेत परिदृश्यों में प्रमाणीकरण काम करता है जहां सर्वर एक से एक अनुरोध को संभालने फॉर्म प्रमाणीकृत उपयोगकर्ता सर्वर से अलग हो सकते हैं जो वास्तव में उपयोगकर्ता को प्रमाणीकृत करता है और फॉर्म प्रमाणीकरण टिकट और कुकी जारी करता है जब तक कि कुकीज प्रमाणीकरण कॉन्फ़िगर नहीं किया जाता है। इस लिंक को बनाने के लिए, पहले लिंक के वेब फार्म परिदृश्य अनुभाग के अनुसार:

इस समस्या को हल करने के लिए, सत्यापन औरeyryryption कुंजी मान वेब खेत के सभी कंप्यूटरों पर समान होना चाहिए। मशीनके तत्व को कॉन्फ़िगर करने के बारे में अधिक जानकारी के लिए, कैसे करें: ASP.NET 2.0 में MachineKey कॉन्फ़िगर करें।

जो बताता है कि प्रपत्र प्रमाणीकरण ASP.NET सत्र में कुछ भी संग्रहीत नहीं करता है। अन्यथा, आपको जगह-बाहर-प्रक्रिया सत्र प्रबंधन के कुछ रूपों को भी स्थापित करना होगा।

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

+0

+1 अवधारणा का सबूत करने के लिए धन्यवाद –

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