क्या आप क्या करना चाहते है अपने web.config तो की तरह, अपने system.web
अनुभाग में एक अनुभाग है:
<siteMap>
<providers>
<add name="anonymous" type="System.Web.XmlSiteMapProvider" siteMapFile="~/YourAnonymouse.sitemap"/>
<add name="user" type="System.Web.XmlSiteMapProvider" siteMapFile="~/YourNormalUser.sitemap"/>
<add name="admin" type="System.Web.XmlSiteMapProvider" siteMapFile="~/YourAdmin.sitemap"/>
</providers>
</siteMap>
तो इस के साथ, आप तीन साइट मानचित्र प्रदाताओं परिभाषित करना होगा, प्रत्येक आवश्यक मेनू आप देख रहे हैं के लिए अपने-अपने sitemap
फ़ाइलों की ओर इशारा करते प्रत्येक उपयोगकर्ता प्रकार के लिए।
फिर आपके पास SiteMapDataSource
होगा जो आपका मेनू सर्वर नियंत्रण उपयोग करेगा। यह आपके मास्टर पेज पर सबसे अधिक संभावना है। अपने मास्टर पेज के अपने Page_Load()
पर आप तर्क होगा गतिशील और प्रोग्राम के रूप में अपने SiteMapDataSource
नियंत्रण के साइटमैप डेटा स्रोत सेट करने के लिए:
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.User.IsInRole("Admin"))
SiteMapDataSource1.Provider = SiteMap.Providers("admin");
else
SiteMapDataSource1.Provider = SiteMap.Providers("user");
}
else
SiteMapDataSource1.Provider = SiteMap.Providers("anonymous");
स्रोत
2011-12-27 15:59:36
यह एक ASP.NET वेब अनुप्रयोग है ..? यदि ऐसा है तो मास्टर पेज का उपयोग करें और वहां से टैब या मेनू की दृश्यता सेट करें, मैंने इस दृष्टिकोण का उपयोग कई बार किया है जब सक्रिय समूह निर्देशिका को सक्रिय डायरेक्ट्री – MethodMan
पर रोक दिया गया है। यहां बहुत कम जानकारी है। इस मामले में "मेनू" वास्तव में क्या है? आपके मौजूदा "मेनू" कैसे बनाए गए हैं? क्या आप उन्हें सिर्फ एक मास्टर पेज में बना रहे हैं? हो सकता है कि मास्टर पेज पर दोनों मेनू हों और केवल एक सशर्त के साथ उन्हें दिखाएं/छुपाएं जो लॉग-इन उपयोगकर्ता की भूमिका की जांच करता है? – David
मुझे खेद है, लेकिन मुझे समझ में नहीं आया कि आपने अभी क्या कहा है ... और हाँ यह एक एएसपीनेट वेब एप्लिकेशन है, मैं इसे उपयोगकर्ता नियंत्रण के रूप में करने जा रहा था और इसे मास्टरपेज में खींचता हूं .. – Mazda