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

ASP.NET-是否可以获取用户有权查看的所有页面的列表/集合?,asp.net,authorization,membership,Asp.net,Authorization,Membership,我在基于C#的网站中使用表单身份验证,身份验证在各个文件夹/子文件夹中的web.config文件中定义。我想写一个通用的管理菜单系统,它列出了用户授权打开的所有管理页面。当我添加页面时,我希望它们自动显示在菜单中。所以 我需要获取活动用户有权打开的所有页面的列表/集合。这在ASP.NET3.5中可能吗 我假设ASP.Net在某个地方有一个页面的内部集合,以及它们所需的角色(当您试图打开页面时,它必须在某个地方进行检查)我建议您考虑使用站点地图(在ASP.Net中,web.sitemap)。然后,

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

我需要获取活动用户有权打开的所有页面的列表/集合。这在ASP.NET3.5中可能吗


我假设ASP.Net在某个地方有一个页面的内部集合,以及它们所需的角色(当您试图打开页面时,它必须在某个地方进行检查)

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

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


要完成您想要的任务,您必须使用System.IO自己编写代码,并从web.config获取授权设置。

这听起来是个好主意。仍然需要您以某种方式动态地管理/更新站点地图,但这比从头开始编写要容易得多。这听起来很完美!谢谢Gabriel。我同意,forms auth是在站点地图或web.config中以每页或每个目录为基础指定的。您可以编写自定义IO代码来解析这些信息。