2011-01-03 5 views
15

में कस्टम फॉर्म प्रमाणीकरण मैं व्यवस्थापक अनुभाग में लॉगिन करने के लिए अपनी साइट पर प्रमाणीकरण का उपयोग करना चाहता हूं। मेरे पास पहले से ही मेरा डेटाबेस स्कीमा है, मैं SQL सर्वर के लिए ASP.NET सदस्यता तालिका का उपयोग नहीं करना चाहता हूं। मेरे पास तीन टेबल हैं: कर्मचारी, भूमिकाएं, और कर्मचारी इनरोल।एमवीसी

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

अगर कोई मुझे ब्लॉग पोस्ट या ट्यूटोरियल के बारे में निर्देशित कर सकता है, तो यह बहुत अच्छा होगा।

+0

सुनिश्चित नहीं हैं कि आपके डेटा को सुरक्षित करने की जरूरत है: http://www.asp.net/general/videos/how-do-i-create-a-custom-membership-provider

यहाँ अन्य संसाधनों के संकेत के साथ एक अच्छा सामान्य लेख है:

यहाँ एक कस्टम ASP.NET सदस्यता प्रदाता बनाने पर एक वीडियो है , या जोखिम कारक, लेकिन यह मानते हुए कि यह सुरक्षा के लायक है या आप परेशान नहीं होंगे ... सुनिश्चित करें कि आप OWASP दिशानिर्देशों का पालन करें। अधिकांश डेवलपर्स को अपनी सुरक्षा नहीं लेनी चाहिए जब विशेषज्ञों द्वारा विकसित और परीक्षण किया गया एक मौजूदा एपीआई आसानी से उपलब्ध है, लेकिन यदि आप जोर देते हैं, कम से कम दिशानिर्देशों का पालन करें। http://www.owasp.org/index.php/Authentication_Cheat_Sheet – David

+7

@ डेविड: मुझे असहमत होना है- अंतर्निहित कार्यान्वयन का स्रोत व्युत्पन्न के लिए उपलब्ध है। जब आपके पास पहले से ही आपके डेटा मॉडल में निर्मित उपयोगकर्ता टेबल हैं, तो अंतर्निहित तालिकाओं का उपयोग करना मुश्किल हो सकता है। माइक्रोसॉफ्ट विशेष रूप से इंटरफेस पर सदस्यता प्रदाता आधारित है ताकि इसे बढ़ाया जा सके। –

+0

मैं अपनी पिछली टिप्पणी में संशोधन करने जा रहा हूं- पासवर्ड संग्रहण एक साधारण बात नहीं है और आसानी से गलत किया जा सकता है। तो, दूर विस्तार करें, लेकिन सुनिश्चित करें कि आप समझते हैं कि डेटाबेस में आराम से संवेदनशील डेटा कैसे एन्क्रिप्ट करना है। –

उत्तर

24

स्टीवन, वेबसाइट सुरक्षा पर ट्यूटोरियल की मेरी श्रृंखला की जाँच: http://www.asp.net/web-forms/overview/older-versions-security/introduction/security-basics-and-asp-net-support-cs

(संपादित करें: मैं ऊपर URL को नवीनीकृत किया है के रूप में मूल URL एक 404. लौट रहा था लेकिन ध्यान में रखना कृपया कि इस सामग्री को लिखा गया था 2008 में और निराशाजनक रूप से दिनांकित है।)

पहले तीन ट्यूटोरियल सदस्यता पर चर्चा किए बिना फॉर्म-आधारित प्रमाणीकरण पर विशेष रूप से ध्यान केंद्रित करते हैं। ये पहले तीन ट्यूटोरियल - विशेष रूप से ट्यूटोरियल # 2 और # 3 - आपको सही दिशा में आगे बढ़ना चाहिए।

अंतर्निहित एएसपी.NET भूमिकाओं के ढांचे के बिना भूमिकाओं को लागू करने के लिए, इस आलेख को देखें: Role-Based Authorization With Forms Authentication

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

हैप्पी प्रोग्रामिंग!

+0

+1 - अपना खुद का रोलिंग आमतौर पर एक बुरा विचार है, और मैं इस पर आपके साथ कुल समझौते में हूं! – David

+1

यह तब तक काम करता है जब तक आपको गैर-SQL सर्वर डेटास्टोर के साथ काम नहीं करना पड़ेगा। –

+0

@EdDeGagne, आप एक वैकल्पिक डेटा स्टोर से निपटने के लिए एक कस्टम सदस्यता प्रदाता बना सकते हैं। वास्तव में, कोई पहले से ही ऐसा कर सकता है। उदाहरण के लिए, यहां MySQL - http: //www.codeproject के लिए एक कस्टम सदस्यता प्रदाता है।कॉम/आलेख/12301/सदस्यता-और-भूमिका-प्रदाताओं-के लिए-MySQL –

4

अंतर्निहित सदस्यता प्रदाता इंटरफेस पर आधारित है जो उनके कार्यान्वयन को अपने आप से बदल सकता है, जो (अन्य चीजों के साथ) प्रमाणीकरण के लिए अपनी टेबल का उपयोग कर सकता है।
http://weblogs.asp.net/scottgu/archive/2006/02/24/ASP.NET-2.0-Membership_2C00_-Roles_2C00_-Forms-Authentication_2C00_-and-Security-Resources-.aspx