2008-12-08 10 views
5

तो मैं अपने दोस्तों के समूह के लिए एक छोटे से वेब एप्लिकेशन (साइट) पर काम कर रहा हूं और यह महसूस करने आया हूं कि चीजों को बदलने की जरूरत है। आवेदन आप एक एएसपी.NET एमवीसी वेब एप्लिकेशन में विज़िटर और एडमिन फ़ंक्शंस को कैसे प्रबंधित करेंगे?

  • दो यह

    1. एक सार्वजनिक संपर्क वाले पक्ष है कि आगंतुकों और गैर व्यवस्थापक को डायनामिक डेटा में कार्य करता है के लिए चेहरे, और एक व्यवस्थापक ओर जहां व्यवस्थापक अद्यतन कर सकते हैं या गतिशील डेटा पेश किए जाएं, बनाने है।

    यह एप्लिकेशन अलग-अलग पृष्ठों और फ़ोल्डर्स की web.config सुरक्षा द्वारा विभाजित एक वेबफॉर्म प्रोजेक्ट के रूप में शुरू हुआ। फिर यह अलग परियोजनाओं में बढ़ी (एमवीसी व्यवस्थापक पक्ष और वेबफॉर्म फ्रंट एंड)। बाद में मुझे तैनाती के मुद्दों के कारण एमवीसी (व्यवस्थापक) और वेबफॉर्म (सार्वजनिक) के मिश्रण के साथ एक वेब ऐप ले जाना पड़ा।

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

    • मैं सिर्फ इनलाइन सार्वजनिक एप्लिकेशन के बाकी के साथ व्यवस्थापक कार्यों बना सकते हैं और यह निर्धारित करता है, तो उपयोगकर्ता में हो या ना किया है चाहिए?
    • या क्या मुझे व्यवस्थापक नियंत्रक बनाना चाहिए जो सार्वजनिक नियंत्रकों से अलग हैं (EventAdminController बनाम कैलेंडर नियंत्रक)?
    • दूसरों ने क्या किया है?

    सुझाव स्वागत है, धन्यवाद stackoverflow।


    हाँ मैं माइक्रोसॉफ्ट से एएसपी.NET एमवीसी ढांचे का उपयोग कर रहा हूं। Darryl, क्या आप एक एडमिन फ़ोल्डर में अपने विचार रखने और इसे वेब.कॉन्फिग (सुरक्षा और भूमिकाओं की जांच करने के लिए) या मेरे नियंत्रकों को एक व्यवस्थापक फ़ोल्डर में रखने के लिए कह रहे हैं?

    मेरी धारणा यह थी कि आप नियंत्रकों के तहत कहते हैं कि एक व्यवस्थापक फ़ोल्डर में नियंत्रकों को रखने के लिए कह रहे थे। इसका अभी भी मतलब होगा कि होम नियंत्रक/नियंत्रक होम नियंत्रक नियंत्रक/नियंत्रक/व्यवस्थापक से अलग हैं। इस मामले में आप प्रत्येक के लिए विशिष्ट मार्गों को कॉन्फ़िगर कर सकते हैं लेकिन मुझे नहीं लगता कि एक अलग फ़ोल्डर में नियंत्रक को बस कैसे रखा जाए, उनकी रक्षा होगी (जब तक क्रियाओं पर प्राधिकृत विशेषता का उपयोग न हो)।

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

  • उत्तर

    1

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

    +0

    मुझे यकीन नहीं है कि यह नियंत्रकों के साथ कैसे काम करेगा। वे कोई सीमा नहीं जानते हैं। मैंने वेब विधि दुनिया में इस विधि का उपयोग किया है और अच्छी तरह से काम करता है। मैं अपने नियंत्रकों को बेहतर तरीके से व्यवस्थित कर सकता हूं लेकिन मुझे प्रोजेक्ट के सभी नियंत्रकों में अद्वितीय नाम होना होगा। –

    +0

    क्या आप एएसपी.नेट एमवीसी फ्रेमवर्क का उपयोग कर रहे हैं जो माइक्रोसॉफ्ट प्रदान करता है या एएसपी.नेट के लिए कुछ अन्य एमवीसी फ्रेमवर्क? एएसपी.नेट एमवीसी फ्रेमवर्क नियंत्रकों में डिफ़ॉल्ट रूप से विचारों के लिए मजबूती से बंधे हैं। तो यूआरएल http://www.example.com/admin/something/1/ AdminControler को कॉल करेगा। कुछ (1) –

    +0

    आप प्रमाणीकरण तर्क के साथ प्रमाणीकरण बाधाओं या आईओसी कंटेनरों के साथ फ़िल्टर, क्षेत्र, रूटिंग का भी उपयोग कर सकते हैं इस प्रकार की कार्यक्षमता प्रदर्शन करें –

    2

    हमें एक समान समस्या है जहां हम एक बहुत बड़े एएसपी.नेट एमवीसी अनुप्रयोग बना रहे हैं और उन क्षेत्रों में कार्यक्षमता को अलग करने के लिए हम this post by Phil Haack के समान प्रक्रिया का उपयोग कर रहे हैं।क्षेत्रों को बनाकर आप पूरे एप्लिकेशन के बजाय प्रत्येक क्षेत्र के लिए अद्वितीय नियंत्रक नाम प्राप्त कर सकते हैं, आप अपने मॉड्यूल को और अधिक आसानी से अलग कर सकते हैं और आप प्रमाणीकरण और बुनियादी सामान्य कार्यक्षमता साझा कर सकते हैं।

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