Tôi có sau trong web.config của tôi:Trong lớp codebehind của tôi, làm cách nào để truy xuất các vai trò được ủy quyền?
<location path="RestrictedPage.aspx">
<system.web>
<authorization>
<allow roles="Group1Admin, Group3Admin, Group7Admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
Trong RestrictedPage.aspx.cs, làm thế nào để lấy lại vai trò thu thập được phép có chứa Group1Admin, Group3Admin, và Group7Admin?
Đây là lý do tôi hỏi:
Web.config đang xử lý ủy quyền cho trang. Điều đó hoạt động tốt. Nhưng tôi sẽ có một vài trong số các trang này (nói RestrictedPage.aspx, RestrictedPage2.aspx, RestrictedPage3.aspx). Mỗi trang này sẽ có bộ điều khiển web tùy chỉnh của tôi trên đó. Và mỗi trang trong số các trang này sẽ có các vai trò được cho phép khác nhau. Webcontrol của tôi có một danh sách thả xuống. Các lựa chọn trong trình đơn thả xuống phụ thuộc vào giao điểm của vai trò của người dùng và các vai trò được cho phép của trang.
Như đã đề cập bên dưới, tìm kiếm trên web.config bằng XPath có thể sẽ hoạt động. Tôi đã chỉ hy vọng cho một cái gì đó nhiều framework-y. Loại giống như SiteMap. Khi tôi đặt các vai trò trong web.sitemap của mình, tôi có thể lấy chúng bằng SiteMap.CurrentNode.Roles (trang web của tôi đang sử dụng xác thực Windows, vì vậy tôi không thể sử dụng web.sitemap để bảo mật và tôi muốn duy trì vai trò chỉ trong một tập tin).
Hoàn hảo! Đây là dòng cuối cùng của tôi: Uỷ quyềnSection section = (AuthorizationSection) WebConfigurationManager.GetSection ("system.web/authorization", Request.Path); Yêu cầu.Điều hướng đến vị trí = "RestrictedPage.aspx" (khi đó là trang hiện tại). Cảm ơn! –
Để lấy web.config hiện tại, cho biến configPath - hoặc thay thế nó bằng hoặc đặt nó thành "~" như được mô tả trong câu trả lời này [ở đây] (http://stackoverflow.com/a/4134213/603807) – dyslexicanaboko