Những gì bạn muốn làm là trong web.config của bạn có một phần trong phần system.web
của bạn, như vậy:
<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>
Sau đó, với điều này, bạn sẽ có ba nhà cung cấp bản đồ trang web xác định, mỗi chỉ vào sitemap
file tương ứng của họ đối với đơn cần thiết mà bạn đang tìm kiếm cho từng loại người dùng.
Sau đó, bạn sẽ có một SiteMapDataSource
mà điều khiển máy chủ trình đơn của bạn sẽ sử dụng. Điều này rất có thể sẽ tồn tại trên trang cái của bạn. Trên Page_Load()
lại trang chủ của bạn, bạn sẽ có logic để tự động và lập trình thiết lập các nguồn dữ liệu sitemap kiểm soát SiteMapDataSource
của bạn:
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");
Nguồn
2011-12-27 15:59:36
là này một ứng dụng web ASP.NET ..? nếu như vậy sử dụng trang chính và thiết lập khả năng hiển thị của các tab hoặc trình đơn từ đó tôi đã sử dụng phương pháp này nhiều lần khi xác thực nhóm người dùng vai trò ontop của ActiveDirectory – MethodMan
Có rất ít thông tin ở đây. Chính xác thì "menu" trong trường hợp này là gì? "Menu" hiện tại của bạn được tạo ra như thế nào? Bạn chỉ cần xây dựng chúng trong một trang chủ? Có thể có cả hai menu trên trang chính và chỉ hiển thị/ẩn chúng với một điều kiện kiểm tra vai trò của người dùng đã đăng nhập? – David
Im xin lỗi nhưng tôi không hiểu những gì bạn vừa nói ... và có nó là một ứng dụng web asp.net, tôi sẽ làm điều đó như một điều khiển người dùng và kéo nó trong trang chủ .. – Mazda