2010-04-29 15 views
5

सदस्यता.GetUser() और Context.User के बीच अंतर क्या हैं, और वर्तमान उपयोगकर्ता के बारे में जानकारी प्राप्त करने के लिए किसकी सिफारिश की जाती है?सदस्यता। GetUser() बनाम Context.User

उत्तर

3

यदि आपके पास अपनी साइट के लिए सदस्यता कॉन्फ़िगर नहीं है, तो getuser() कुछ भी नहीं मिलेगा।

Context.user एएसपीनेट रनटाइम को सौंपा पहचान टोकन है, और यदि उपयोगकर्ता अज्ञात acces से अलग प्रमाणीकरण साइट के लिए कॉन्फ़िगर किया गया है तो उपयोगकर्ता उत्पन्न करेगा।

+0

लगता है जैसे आप कह रहे हैं कि सदस्यता.GetUser() उपयोगकर्ता को सदस्यता (स्पष्ट पर्याप्त) से प्राप्त करेगा, जबकि Context.User उपयोगकर्ता को व्यापक दायरे से कुछ भी प्राप्त करेगा - कुछ भी। तो विंडोज़ ऑथ का उपयोग करना, उदाहरण के लिए, सदस्यता.गेटयूसर() से कुछ भी नहीं मिलता है, लेकिन यह Context.User से विंडोज उपयोगकर्ता उत्पन्न करता है। (और यह एक त्वरित परीक्षण से मामला प्रतीत होता है।) उस स्थिति में, यदि आप निश्चित रूप से सदस्यता प्रदाता का उपयोग कर रहे हैं तो इसकी अनुशंसा की जाती है? – zimdanen

+0

सदस्यता प्रदाता, मेरे अनुभव में; मुख्य रूप से तब उपयोग किया जाता है जब आपको अपने प्रमाणीकरण में कुछ लचीलापन की आवश्यकता होती है, यदि आवश्यक हो तो आप XMLMembershipProvider भी प्राप्त कर सकते हैं। यदि आप फॉर्म आधारित प्रमाणीकरण का उपयोग कर रहे हैं, तो सदस्यताप्रोवाइडर शायद इसके बारे में जाने का सबसे दर्दनाक तरीका है। – Pierreten

+0

इसमें अधिक गहराई से देख रहे हैं, ऐसा लगता है कि Context.User वास्तव में न्यूनतम जानकारी देता है। मुझे लगता है कि आप सदस्यता के बारे में सही हैं। गेटयूसर()। फिर फिर, सदस्यता.GetUser() का उपयोग करने से एक दक्षता खींचें हो सकती है यदि आपको केवल उस जानकारी की जानकारी है जिसे आप Context.User से प्राप्त कर सकते हैं। – zimdanen

3

सदस्यता। GetUser एक सदस्यता प्रदाता के उपयोग का तात्पर्य है। यह बस जो भी स्टोर कॉन्फ़िगर किया गया है उससे उपयोगकर्ता की जानकारी पुनर्प्राप्त करता है। (उदा। ActiveDirectory, SQL सर्वर)। Context.User वर्तमान अनुरोध के लिए IPrincipal सुरक्षा संदर्भ है।

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