向SiteMap添加新角色

时间:2014-01-10 09:05:51

标签: c# asp.net sqlroleprovider

在我的程序中,我可以选择让管理员向数据库添加新角色。当然,这会使用CreateRole中的System.Web.Security.Roles方法:

Roles.CreateRole(newRoleName);

现在我想知道,是否可以在运行时修改我的SiteMap,以便将新角色添加到给定{roles的列表中siteMapNode 1}?例如:

<siteMapNode title="Admin Tools" roles="Admin" description="">

如果我在哪里插入名为sampleRole的新角色,则siteMapNode应如下所示:

<siteMapNode title="Admin Tools" roles="Admin,sampleRole" description="">

我的代码怎么看?

1 个答案:

答案 0 :(得分:1)

有几个原因没有更改文件(尽管可能):

  • 该文件很可能位于应用程序的应用程序目录中。如果更改此目录中的文件(例如web.config),IIS将重新启动应用程序,以便其他用户可能会遇到中断。
  • 此外,SiteMapProvider可能会出于性能原因缓存文件内容,因此不会反映您的更改。
  • 出于安全原因,应用程序池帐户不能修改Web服务器上的文件。

有一种替代方法:创建一个自定义SiteMapProvider,确定节点的角色,使其符合您的要求。有关详细信息,请参阅此link