我在基于C#的网站中使用表单身份验证,并在各种文件夹/子文件夹中的web.config文件中定义了身份验证。我想编写一个通用的管理菜单系统,它列出了授权用户打开的所有管理页面。当我添加页面时,我希望它们自动显示在菜单中。所以......
我需要获取活动用户有权打开的所有页面的列表/集合。这在ASP.Net 3.5中是否可行?
我认为ASP.Net在某个地方有一个内部的页面集合,以及它们所需的角色(当你试图打开一个页面时它必须在某处检查)?
答案 0 :(得分:1)
我建议使用站点地图(在ASP.Net,web.SiteMap中)。然后,您可以将SiteMap用作数据源(以及为每个页面定义角色等)。
答案 1 :(得分:0)
您假设错误...这些页面没有内部列表,只有文件系统。当ASP.NET尝试打开页面时,会逐个文件地检查访问权限。
要执行您要查找的内容,您必须使用System.IO自行编写代码并从web.config获取授权设置。