2011-12-27 14 views
5

Kullanıcı rolünün ne olduğuna bağlı olarak farklı bir menü oluşturmaya çalışıyorum. Kullanıcı bir yönetici rolü iseKullanıcı rolüne bağlı olarak çalışma zamanında menü oluşturma

Örneğin, gösterilen menü olacaktır:

  • AdminPane

  • RegisterUser

  • UserRoles

ve kullanıcı Temel rolü ise:

  • ViewProducts

  • makeOrder

Bu düzen örneğidir.

Şanssız 2 saat boyunca ağda arama yaptığım için yardımcı olabilirim.

Teşekkürler.

Tüm bu PostBack veya Başlangıç ​​Sayfa yük ana kullanıyorum tarafından ve üzerinde gerçekleştirilebilir
+0

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

+0

'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

+0

Ü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

cevap

4

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"); 
0

Ne yapmak istediğinize içindedir ..

İlgili konular