asp.net mvc समझ एएसपी.नेट एमवीसी-क्षेत्र या प्रशासन के लिए अलग वेब अनुप्रयोग?




समझ एएसपी शुद्ध नियंत्रण (4)

मैं कई कारणों से प्रशासन की साइट को अलग रखना चाहता हूं:

  • संवेदनशील सुरक्षा जोखिमों को बहुत कम कर दिया जाता है क्योंकि संवेदनशील क्षेत्रों तक पहुंच सीमित और नियंत्रित करने में आसान होगा।
  • एक अच्छे समाधान में, परतों (सेवा / डेटा आदि) के बीच Separation of Concerns मतलब है कि आपकी मुख्य साइट पर उपलब्ध कार्यक्षमता का उपयोग करने के लिए आपकी व्यवस्थापक साइट को तार करने के लिए अपेक्षाकृत सरल होना चाहिए।
  • डेवलपर्स अपने एडमिशन साइट को चमकाने के बारे में कम चिंतित होते हैं, क्योंकि कंपनियां आम तौर पर उनके फ्रंट-एंड साइटों पर ध्यान केंद्रित करती हैं। इसका मतलब यह है कि व्यवस्थापक साइट को प्रभावित करने वाले लापरवाह बगों को मुख्य एक को प्रभावित करने की संभावना कम है
  • मैं AuthorizeAttribute साथ एक बेस कंट्रोलर का उपयोग करता हूं, जिसका अर्थ है कि सभी कार्यों ( login छोड़कर!) को बाहरी क्रेडेंशियल्स के बिना बाहरी उपयोगकर्ताओं द्वारा एक्सेस करने में असमर्थ हैं। तब आवश्यक क्रियाओं के साथ व्यक्तिगत क्रियाएं फिर से लिखी जाती हैं, लेकिन आमतौर पर, यह "सेट और भूल" दृष्टिकोण है हालांकि आप एकल-साइट के दृष्टिकोण में दो आधार नियंत्रक बना सकते हैं, मुझे विश्वास है कि यह थोड़ा कम प्रबंधनीय होगा।

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

यह एक समस्या बन गया है क्योंकि हाल के प्रोजेक्ट में मैं उपयोगकर्ताओं के लिए समय सीमा समाप्त करने के लिए प्राधिकृत कुकीज़ सेट नहीं करना चाहता था, लेकिन मैं यह प्रशासन उपयोगकर्ताओं के लिए नहीं चाहता। मैं यह भी नहीं चाहता कि उपयोगकर्ता लॉगिन पृष्ठ का उपयोग प्रशासन उपकरण तक पहुंचने के लिए किया जाए।

मैं व्यवस्थापन टूल के लिए समाधान में एक पृथक MVC परियोजना को स्थापित करने पर विचार कर रहा हूं। यह मुझे सबसे अच्छा विकल्प लगता है, लेकिन मैं तैनाती के बारे में जटिलताओं के बारे में सोच रहा हूं (वर्तमान में मैं बिल्डिंग प्रबंधित करने के लिए VS2008 में एक वेब परिनियोजन प्रोजेक्ट का उपयोग कर रहा हूं)।

क्या किसी वर्तमान में व्यवस्थापक अनुभाग के लिए एक पृथक MVC परियोजना का उपयोग करता है? कोई मिलेगा? क्यों यह एक अच्छा विचार नहीं है के रूप में अन्य राय?

धन्यवाद।


FormsAuthentication.SetAuthCookie पद्धति आपको यह नियंत्रित करने की अनुमति देती है कि यह पूरे सत्र में जारी रहती है या नहीं।

यदि वे एक व्यवस्थापक हैं, तो इसे false सेट करें, अन्यथा true

अधिक जानकारी के लिए http://msdn.microsoft.com/en-us/library/twk5762b.aspx देखें (दूसरा पैरामीटर createPersistentCookie इस पर नियंत्रण करता है)

उपयोगकर्ता के विभिन्न वर्गों के लिए एक अलग लॉगिन पृष्ठ के संदर्भ में, यदि आप उपयोगकर्ता के गलत वर्ग हैं और गलत लॉगिन पृष्ठ तक पहुंच रहे हैं तो आप प्रमाणीकरण विधि से गलत लौट सकते हैं।

प्रमाणीकरण टोकन सेट करने से पहले यह सब तर्क होना चाहिए।


प्रपत्र auth कुकी व्यवस्थापक-क्षेत्र के लिए पथ प्रतिबंधित हो सकता है, लेकिन यह प्रमाणीकरण से निपटने के दौरान आपको कुछ सिरदर्द देगा, लेकिन संभवतः प्राप्त करना संभव होगा।

Admin.hostname.com का उपयोग करने के बजाय एक अन्य विकल्प या उस पर कुछ भी, / admin पर एक सबपिप्लिकेशन का उपयोग करना है, हालांकि, यह जरूरी नहीं कि आपकी समस्या को हल करे।

हमने अपने वेब एप्लिकेशन को दो अलग-अलग साइटों के रूप में विकसित किया है, मुख्यतः क्योंकि हम चाहते थे कि प्रशासन को वास्तविक साइट से विभाजित किया जाए, और स्केलेबिलिटी के कारणों के लिए भी। हम सवाल में वास्तविक वेबसाइट को बढ़ा सकते हैं, और प्रशासन का हिस्सा नहीं।

हमने निम्न मुद्दों में भाग लिया है:

  1. सामग्री का पूर्वावलोकन करने के लिए कुछ तर्क आवश्यक हैं जो साइट के लिए वास्तविक होस्टनाम को किसी प्रकार की कॉन्फ़िगरेशन में संग्रहीत करने की आवश्यकता होगी, ताकि व्यवस्थापक को सही साइट पर रीडायरेक्ट करने के साथ-साथ कुछ सुरक्षा टोकन आदि से निपटने के लिए उपयोगकर्ता को साइट पर प्रमाणित किया जाना चाहिए यदि आप एक ही साइट (सापेक्ष पथ और उसी प्रमाणीकरण) पर हैं तो यह बहुत आसान है
  2. एक साथ कई वेबसर्वर पर चलाए जा सकने वाली साइटें (उर्फ, वेब खेत) को उस दिमाग में डिज़ाइन करने की आवश्यकता होती है इसमें कैश अमान्यकरण, कॉन्फ़िगरेशन पुनः लोड या किसी भी अन्य एप्लिकेशन संग्रहीत डेटा की तरह सामान शामिल है जो आपके प्रशासन इंटरफ़ेस में "संशोधित" हो सकता है। यह, हालांकि, किसी भी दृष्टिकोण में एक समस्या है। लेकिन, यदि आपकी साइट किसी भी अनुसूचित कार्य या तृतीय पक्ष एकीकरण पर सीधे आपके वेब एप्लिकेशन पर निर्भर करती है, तो यह कुछ समस्याएं प्रस्तुत कर सकती है यदि आपका व्यवस्थापन साइट / सिस्टम एकाधिक सर्वर पर चल रहा है इसलिए, एचआई आईआईएस विफलता क्लस्टर पर प्रशासन-प्रणाली को चलाने के लिए अधिक उपयुक्त हो सकता है, लेकिन भार संतुलित वेब खेत पर वास्तविक वेबसाइट (जो उच्च भार की संभावना है) पर हो सकता है। अलग-अलग साइटों के पक्ष में सेटअप की यह जुदाई है

मुझे लगता है कि स्केलेबिलिटी के कारणों के लिए, आपको चिंताओं को अलग करने पर विचार करना चाहिए, हालांकि यह सब आपके आवेदन के डिज़ाइन पर निहित है यदि यह संभव है या नहीं। हम एक निश्चित प्रकार की वेबसाइटों के लिए एक ढांचे का निर्माण कर रहे हैं, जिसका अर्थ है कि डिज़ाइन का वास्तविक कार्यान्वयन हर ग्राहक से भिन्न होता है, लेकिन हम साइट को व्यवस्थित करने के लिए एक मानकीकृत तरीके चाहते थे, इसलिए यह हमारे लिए तार्किक विकल्प था।


मैं हमेशा प्रशासन के लिए एक अलग वेबसाइट का उपयोग कर रहा हूं लेकिन यह मुख्य रूप से है क्योंकि मेरी साइट के लिए प्रशासन उपयोग से पूरी तरह से अलग है और इसलिए एक अलग लेआउट की आवश्यकता है।

एक अन्य सकारात्मक बात यह है कि आपको यह आश्चर्य नहीं है कि उपयोगकर्ता सामग्री को संशोधित करने में सक्षम हो सकते हैं, क्योंकि वे उस उपयोगकर्ता के वेब साइट में निर्मित नहीं किए गए हैं क्योंकि वे संशोधित नहीं हो पाएंगे।

अद्यतन करें

मेरा मतलब है रैज़र या मास्टरपृष्ठ के साथ लेआउट वेबफ़ॉर्म देखें इंजन के साथ।

हम साइटों को अलग करने के लिए http://admin.domainname.com और http://www.domainname.com का उपयोग करते हैं। सेटअप करने के लिए काफी आसान है

साइटों को विभाजित करने से नियंत्रक भी होते हैं और बहुत क्लीनर देख सकते हैं क्योंकि वे केवल प्रशासक या उपयोगकर्ता के लिए कार्य को संभालते हैं। बहुत सारे IFS के लिए कोई ज़रूरत नहीं है (जो अन्यथा बहुत आसान हो सकती है यदि आप मुझे पसंद हैं I = एक आलसी कोडर :)





administration