ASP.NET - 是否可以获取用户有权查看的所有页面的列表/集合?

时间:2010-01-29 22:03:14

标签: asp.net authorization membership

我在基于C#的网站中使用表单身份验证,并在各种文件夹/子文件夹中的web.config文件中定义了身份验证。我想编写一个通用的管理菜单系统,它列出了授权用户打开的所有管理页面。当我添加页面时,我希望它们自动显示在菜单中。所以......

我需要获取活动用户有权打开的所有页面的列表/集合。这在ASP.Net 3.5中是否可行?

我认为ASP.Net在某个地方有一个内部的页面集合,以及它们所需的角色(当你试图打开一个页面时它必须在某处检查)?

2 个答案:

答案 0 :(得分:1)

我建议使用站点地图(在ASP.Net,web.SiteMap中)。然后,您可以将SiteMap用作数据源(以及为每个页面定义角色等)。

答案 1 :(得分:0)

您假设错误...这些页面没有内部列表,只有文件系统。当ASP.NET尝试打开页面时,会逐个文件地检查访问权限。

要执行您要查找的内容,您必须使用System.IO自行编写代码并从web.config获取授权设置。