değerleri saklayan bir Session Değişken oluşturmak veya oldukça basit ActiveDirectory karşı bir şey yazabilir web.config böylece gibi, system.web
bölümünde bir bölüm vardır:
<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>
Sonra bununla, üç site haritası sağlayıcıları tanımlanmış olacak, her aradığınız gerekli menü için kendi
sitemap
dosyalarını işaret Her kullanıcı tipi için.
Ardından, menü sunucu denetiminizin kullanacağı bir SiteMapDataSource
olacaktır. Bu büyük olasılıkla ana sayfanızda bulunacaktır. Ana sayfanızda listenizdekilerden Page_Load()
sitesinde mantığı gerekecek dinamik ve programlı SiteMapDataSource
kontrolün site haritası veri kaynağını ayarlamak için:
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");
bu ASP.NET web uygulamasıdır ..? eğer öyleyse, ana sayfaları kullanın ve sekmelerin veya menülerin görünürlüğünü buradan ayarlayın. ActiveDirectory – MethodMan
'un kullanıcı gruplarının rollerini doğrularken bu yaklaşımı birçok kez kullandım. Burada çok az bilgi var. Bu durumda tam olarak "menü" nedir? Mevcut "menüler" iniz nasıl oluşturulur? Onları bir ana sayfada mı yapıyorsunuz? Belki de ana sayfada hem menüler var ve sadece giriş yapmış kullanıcının rolünü kontrol eden bir koşulla göster/gizle? – David
Üzgünüm ama ne dediğini anlamadım ... ve evet bir asp.net web uygulaması, bunu bir kullanıcı kontrolü olarak yapacağım ve bunu ana sayfada sürükleyecektim. – Mazda