1

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

Roles.CreateRole(newRoleName);

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

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

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

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

我的代码应该如何看?

4

1 回答 1

1

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

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

但是还有一种选择:创建一个自定义 SiteMapProvider 来确定节点的角色,使其符合您的要求。有关详细信息,请参阅此链接

于 2014-01-10T09:17:30.920 回答