2012-12-18 18 views
6

जॉन गैलोवे का एक सिंहावलोकन है - http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx - एएसपी.नेट एमवीसी 4 में नई सदस्यता सुविधाओं में से एक है। इंटरनेट प्रोजेक्ट टेम्पलेट एएसपी.नेट के मूल सदस्यता प्रदाताओं से और सरलमेम्बरशिपप्रोवाइडर की दुनिया में चला जाता है और OAuth।एंबल उपयोगकर्ता विधि

सरल हस्तक्षेप को प्रतिबिंबित करते हुए, क्या किसी को पता है कि डेटाबेस में संग्रहीत अज्ञात उपयोगकर्ताओं को अनुमति देने में सक्षम होने के लिए ओपन सोर्स http://aspnetwebstack.codeplex.com/ का उपयोग करके इसे विस्तारित करना संभव है - शायद उपयोगकर्ता प्रोफाइल तालिका में?

मैंने http://msdn.microsoft.com/en-us/library/webmatrix.webdata.simplemembershipprovider सरलमेम्बरशिप प्रदाता कक्षा की जांच की लेकिन इसकी विधियों में अनाम पहचानों का कोई संदर्भ नहीं है।

यदि यह संभव नहीं है, तो क्या किसी को विस्तारित मेमर्सशिप प्रदाता बनाने के बारे में जानकारी है? brgds!

अद्यतन जानकारी: pro.asp.netmvc3 पुस्तक से। के बारे में प्रमाणीकरण authorization-

को सक्षम करने से बेनामी प्रोफाइल: डिफ़ॉल्ट रूप से, प्रोफ़ाइल डेटा केवल प्रमाणीकृत उपयोगकर्ताओं के लिए उपलब्ध है, और अगर हम प्रोफ़ाइल गुण लिखने के लिए जब वर्तमान उपयोगकर्ता में लॉग इन नहीं किया प्रयास एक अपवाद फेंक दिया जाएगा हम 22-17 में दिखाए गए अनुसार अनाम प्रोफाइल के लिए समर्थन सक्षम करके इसे बदल सकते हैं। जब अनाम पहचान सक्षम होती है, तो एएसपी.नेट ढांचा अज्ञात उपयोगकर्ताओं को उन्हें एक कुकी देकर ट्रैक करेगा .एएसएक्सएक्सओएमओयूयूएस जो 10,000 मिनट (लगभग 70 दिनों के बाद) समाप्त हो जाती है। हम अनुमति अज्ञात विशेषता को सत्य पर सेट करके प्रोफ़ाइल गुणों के लिए अनाम समर्थन सक्षम कर सकते हैं; सूची में हमने नाम और शहर गुणों के लिए अनाम समर्थन सक्षम किया है। अज्ञात प्रोफाइल सक्षम करना अनधिकृत उपयोगकर्ताओं के लिए प्रोफ़ाइल डेटा को पढ़ने और लिखना संभव बनाता है, लेकिन सावधान रहें, प्रत्येक अनधिकृत विज़िटर स्वचालित रूप से प्रोफ़ाइल डेटाबेस में उपयोगकर्ता खाता बना देगा।

मैं इसे सरल सदस्यता में दोहराना चाहता हूं। मैं पुराने प्रोफाइल सिस्टम का उपयोग नहीं करना चाहता हूं क्योंकि इसके स्टोर वैल्यू ब्लॉब में हैं। brgds !.

* * अद्यतन: सूची 22-17: लिस्टिंग 22-17। बेनामी प्रोफाइल के लिए सक्षम करने से समर्थन

<configuration> 
<system.web> 
<anonymousIdentification enabled="true"/> 
<profile> 
<providers> 
<clear/> 
<add name="AspNetSqlProfileProvider" 
type="System.Web.Profile.SqlProfileProvider" 
connectionStringName="ApplicationServices" 
applicationName="/" /> 
</providers> 
<properties> 
<add name="Name" type="String" allowAnonymous="true"/> 
<group name="Address"> 
<add name="Street" type="String"/> 
<add name="City" type="String" allowAnonymous="true"/> 
<add name="ZipCode" type="String"/> 
<add name="State" type="String"/> 
</group> 
</properties> 
</profile> 
</system.web> 
</configuration> 

जब गुमनाम पहचान सक्षम किया गया है, ASP.NET ढांचे गुमनाम उपयोगकर्ताओं उन्हें एक कुकी .ASPXANONYMOUS कहा जाता है कि 10,000 मिनट के बाद समाप्त हो रहा है देकर (कि लगभग 70 दिनों) को ट्रैक करेगा। हम अनुमति अज्ञात विशेषता को सत्य पर सेट करके प्रोफ़ाइल गुणों के लिए अनाम समर्थन सक्षम कर सकते हैं; में सूची हम नाम और शहर के गुणों के लिए गुमनाम समर्थन सक्षम है। **

+0

आपका प्रश्न बहुत स्पष्ट नहीं है, 'डेटाबेस में संग्रहीत अज्ञात उपयोगकर्ता' से आपका क्या मतलब है? यदि उपयोगकर्ता अज्ञात है, तो आप SimpleMembership में किस प्रकार की पहचान की तलाश कर रहे हैं? यदि आप अवधारणा/आवश्यकता को साफ़ कर सकते हैं तो यह मदद करना आसान होगा। –

+0

@ विजय हाय आपके उत्तर के लिए धन्यवाद। अज्ञात .. = उपयोगकर्ता जो पंजीकृत नहीं हैं लेकिन वे उदाहरण चुनते हैं: भाषा। अधिक जानकारी प्रदान करने के लिए: उपयोगकर्ताओं को ट्रैक करने के लिए - उदाहरण के लिए एक कुकी में - एक कुकी में - कुकी से भाषा पढ़ने की बजाय, कुकी को डेटाबेस में जांचने के लिए पढ़ें, अगर उसके पास डेटाबेस में पिछली भाषा का चयन है। Simplemembership में CreateAccount (स्ट्रिंग, स्ट्रिंग) इत्यादि जैसी विधियां हैं, लेकिन उनमें से कोई भी अज्ञात उपयोगकर्ता नहीं बनाते हैं, जब वे विवरण भरते हैं और अकाउंट बनाते हैं तो एक पंजीकृत उपयोगकर्ताओं को परिवर्तित कर दिया जाएगा। Brgds! –

+0

@ विजय अतिरिक्त रूप से मुझे नहीं पता कि क्या मैं उस तालिका में सीधे एक विधि बना सकता हूं अगर यह सुरक्षा समझौता करेगा। –

उत्तर

3

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

शायद इसे संभालने का सबसे आसान तरीका एक "अज्ञात" भूमिका है जिसमें सभी नए उपयोगकर्ता स्वचालित रूप से असाइन किए जाते हैं।अब आप AuthorizeAttribute का उपयोग कर नियंत्रकों/कार्यों तक पहुंच प्रतिबंधित करने के लिए मूल रूप प्रमाणीकरण विधियों का उपयोग कर सकते हैं। एक बार उपयोगकर्ता ने गुमनाम होने के मानदंडों को पूरा कर लिया है, तो आप उनकी भूमिका बदल सकते हैं या सिर्फ एक नया जोड़ सकते हैं जो उन्हें पूर्ण पहुंच प्रदान करता है।

यदि उपयोगकर्ता वास्तव में अज्ञात हैं और आपके पास उन्हें पहचानने का कोई तरीका नहीं है, तो आप अभी भी उन भूमिकाओं के लिए AllowAnonymousAttribute के साथ सजाने वाले नियंत्रकों/कार्यों द्वारा प्रतिबंधित पहुंच प्रदान करने के लिए भूमिका आधारित प्रमाणीकरण और आधार प्रमाणीकरण का उपयोग करेंगे।

अपडेट किया गया उत्तर अपडेट किया गया प्रश्न

के आधार पर answer in this ASP.NET Forum पर एक नजर डालें। असल में यह कह रहा है कि आप अपनी खुद की कुकीज़ और अपनी खुद की डेटाबेस स्कीमा प्रबंधित करके अपना उद्देश्य प्राप्त कर सकते हैं, लेकिन यह SimpleMembership प्रदाता के हिस्से के रूप में काम नहीं करेगा।

+0

नमस्ते आपके उत्तर के लिए धन्यवाद, मैंने अधिक जानकारी सहित प्रश्न संपादित किया .brgds –