我正在对ASP.net中的安全性和站点地图进行一些研究,但遗憾的是我的运行时间很短。我没有太多使用ASP.net安全性,所以我不确定我是否正朝着正确的方向前进。
这是我的问题:
我有一个公共网站(即在互联网上),允许任何用户注册。该网站将使用ASP.net webforms开发。这些用户可以创建其他用户并为这些用户分配不同的角色。
不同的角色有不同的限制,菜单会正确显示。例如,充当管理员的用户可以看到所有菜单选项。而有限的用户只会看到其中一些菜单项。
我们需要能够让用户修改某些角色可以访问的页面。例如,如果Role1可以执行任务X,我们希望能够在某些时候将Role1修改为不再执行任务X.这将使用内部构建的应用程序完成。
用户类型(角色)将保存在数据库中。用户权限(每种类型可以访问的页面)也将保存在数据库中保存。
以下是我正在考虑的事情:
我相信可以使用自定义提供商进行第二次(如果我错了请纠正我)。但我不完全确定是否可以动态配置web.config文件。
我想这更像是一个是/否答案,但我想确保我不会走错方向。我将使用VS2008和.net 3.5框架。
非常感谢。
答案 0 :(得分:1)
是的,你可以做你说的话。您可以使用自定义SiteMapProvider动态创建站点地图,请参阅此联合文章http://www.codeproject.com/KB/aspnet/dynamicsitemap.aspx。
您还可以在运行时使用XmlReader修改web.config,或者如果您愿意,只需将其读入字符串并解析授权元素即可。不过,我将它放在一个单独的文件中,使用configSource:
< authorization configSource =“auth.config”/>
然后你只需要修改那个文件而不用担心搞乱web.config