以编程方式为Web应用程序中的子目录设置ASP.NET授权

时间:2009-02-12 20:01:08

标签: asp.net asp.net-membership

我有一个使用CreateUserWizard注册新用户的ASP.NET应用程序。我的注册过程的一部分是为用户创建一个“主目录”,以便他们能够上传文件。

我想使用ASP.NET授权功能来限制对“主目录”的访问。只有分配给该目录的注册用户才能访问。

我想我知道如何使用Web.config明确地做到这一点。我可以做类似以下的事情:

<?xml version="1.0"?>
<configuration>
.
.
<location path="UserHomeDirectories">
   <system.web>
     <authorization>
       <deny users="?"/>
     </authorization>
   </system.web>
</location>

<location path="UserHomeDirectories/MyUser">
   <system.web>
     <authorization>
       <allow users="MyUser"/>
       <deny users="*"/>
     </authorization>
   </system.web>
</location>
.
.
.

This post 几乎回答了我的问题,但有人可以帮我解决我的具体情况吗?还有一件事:不修改Web.config重启应用程序? (即当我的CreateUserWizard类的CreatedUser事件处理程序中的目录创建/授权代码中的代码运行时?)

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

您可以在用户的​​文件夹中放置一个新属性,而不是在应用范围location中使用web.config属性。在此新文件中,您指定该特定文件夹的授权规则,它们将覆盖应用程序范围的规则。

由于这不会更改原始web.config文件,因此您的应用程序将不会重新启动。