ASP.NET角色和成员资格

时间:2013-09-04 08:02:43

标签: asp.net roles membership elevated-privileges

我是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?

我将非常感谢您的回复。谢谢

1 个答案:

答案 0 :(得分:1)

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

  

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

     

间接导致Web.config文件中配置设置的更改   要重新启动的应用程序域。此行为是通过设计发生的。您   可以选择使用configSource属性来引用外部   进行更改时不会导致重新启动的配置文件。   有关更多信息,请参阅常规属性继承中的configSource   由Section Elements。

相反,您应该为这些用户提供不同的角色,以便只有那些用户才能访问 “AddOrganisation.aspx”页面。

否则,如果您不想为这些用户创建另一个角色,您还可以执行其他操作。您继续将这些用户添加到表中,每当向页面发出请求时,您都可以检查表中是否存在用户名,然后允许/拒绝用户。