0

我对 ASP.NET 技术很陌生

<configuration>
    <system.web>
      <authorization>
        <allow roles="Agency,Admin"/>
        <deny users="*"/>
      </authorization>
    </system.web>
</configuration>

我有一个文件夹的上述 web.config,需要为代理角色中的某些用户提供提升的权限才能访问名为 AddOrganisation.aspx 的页面。为了解决这个问题,我想我可以将以下标记添加到 web.config 但这将是静态的

<location path="AddOrganization.aspx">
    <system.web>
      <authorization>
        <allow users="wale, etc, etc"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

如何启用以编程方式添加用户,而不是为每次更改更新 web.config?

我将不胜感激您的回复。谢谢

4

1 回答 1

1

您不应该在运行时更改 Web 配置,这将在您每次添加用户时重新启动您的应用程序。MSDN这么说

配置更改导致应用程序域重新启动

Web.config 文件中配置设置的更改间接导致应用程序域重新启动。此行为是设计使然。您可以选择使用 configSource 属性来引用在进行更改时不会导致重新启动的外部配置文件。有关详细信息,请参阅节元素继承的常规属性中的 configSource。

相反,您应该给这些用户一个不同的角色,以便只有这些用户可以访问“AddOrganisation.aspx”页面。

否则,如果您不想为这些用户创建另一个角色,您也可以做另一件事。您继续将这些用户添加到表中,每当对页面发出请求时,您可以检查用户名是否存在于表中,然后允许/拒绝用户。

于 2013-09-04T08:14:19.953 回答