2013-08-20 17 views
11

में कुछ भूमिकाओं से लिंक छुपाएं तो यह एक बेवकूफ सवाल हो सकता है, लेकिन मैं केवल एक व्यवस्थापक उपयोगकर्ता के लिए एक लिंक कैसे दिखा सकता हूं?
होम/हमारे बारे में/संपर्कएएसपी.नेट एमवीसी 5

और एक व्यवस्थापक उपयोगकर्ता देखता है निम्न लिंक:
होम/हमारे बारे में/संपर्क/व्यवस्थापक

मैं में सीमित करने की कोशिश की

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

क्या विचार ओवरलोड हो सकते हैं?

+0

यह सिर्फ छिपा नहीं है, तो आप उपयोगकर्ता की भूमिका का मूल्यांकन करना चाहिए लॉग इन किया ... वहाँ इस तरह के इतने सारे जवाब है:

@Html.ActionLink("Index", "Home") @Html.ActionLink("About", "Home") @Html.ActionLink("Contact", "Home") @if (User.Identity.IsAuthenticated){ if (User.IsInRole("Admin")){ @Html.ActionLink("Admin", "AdminController") } } 

और अपने Admin कार्रवाई विधि के लिए [Authorize] विशेषता जोड़ने के लिए याद प्रश्न –

उत्तर

30

आप किस प्रकार के सदस्यता/उपयोगकर्ता प्रदाता का उपयोग कर रहे हैं, इस पर निर्भर करते हुए, यदि उपयोगकर्ता लॉग इन है और विशिष्ट भूमिका में है तो आपको सीधे दृश्य से जांच करनी चाहिए।

तो आप कुछ ऐसा खत्म कर देंगे;

[Authorize(Roles="Admin")] 
public ActionResult Admin() 
{ 
    // ... 
    return View(); 
} 
+1

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

+0

'प्राधिकरण' विशेषता यह जांच करेगी कि उपयोगकर्ता डिफ़ॉल्ट रूप से प्रमाणीकृत है और फिर आप वैकल्पिक रूप से भूमिकाओं में जोड़ सकते हैं। –

+1

ओह, मुझे एहसास हुआ कि अस्पष्ट था (जाहिर है, दिमाग पढ़ने आपकी मजबूत पक्ष नहीं है, हेहे)। मैं ** पहले ** नमूना (सीएसएचटीएम फ़ाइल, रेजर मार्कअप) में लाइन 4 और 5 का जिक्र कर रहा हूं। –

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