是否可以动态修改角色权限并在ASP.NET中生成相应的站点地图/菜单?

时间:2010-06-28 20:35:22

标签: asp.net security menu sitemap

我正在对ASP.net中的安全性和站点地图进行一些研究,但遗憾的是我的运行时间很短。我没有太多使用ASP.net安全性,所以我不确定我是否正朝着正确的方向前进。

这是我的问题:

我有一个公共网站(即在互联网上),允许任何用户注册。该网站将使用ASP.net webforms开发。这些用户可以创建其他用户并为这些用户分配不同的角色。

不同的角色有不同的限制,菜单会正确显示。例如,充当管理员的用户可以看到所有菜单选项。而有限的用户只会看到其中一些菜单项。

我们需要能够让用户修改某些角色可以访问的页面。例如,如果Role1可以执行任务X,我们希望能够在某些时候将Role1修改为不再执行任务X.这将使用内部构建的应用程序完成。

用户类型(角色)将保存在数据库中。用户权限(每种类型可以访问的页面)也将保存在数据库中保存。

以下是我正在考虑的事情:

  1. 使用web.config文件
  2. 实现内置于ASP.net的授权和身份验证设置
  3. 使用站点地图动态创建数据库中的菜单/面包屑
  4. 我相信可以使用自定义提供商进行第二次(如果我错了请纠正我)。但我不完全确定是否可以动态配置web.config文件。

    我想这更像是一个是/否答案,但我想确保我不会走错方向。我将使用VS2008和.net 3.5框架。

    非常感谢。

1 个答案:

答案 0 :(得分:1)

是的,你可以做你说的话。您可以使用自定义SiteMapProvider动态创建站点地图,请参阅此联合文章http://www.codeproject.com/KB/aspnet/dynamicsitemap.aspx

您还可以在运行时使用XmlReader修改web.config,或者如果您愿意,只需将其读入字符串并解析授权元素即可。不过,我将它放在一个单独的文件中,使用configSource:

< authorization configSource =“auth.config”/>

然后你只需要修改那个文件而不用担心搞乱web.config