以编程方式为 Web 应用程序中的子目录设置 ASP.NET 授权
我有一个 ASP.NET 应用程序,它使用 CreateUserWizard 来注册新用户。 我的注册过程的一部分是为用户创建一个“主目录”,他们可以在其中上传文件。
我想使用 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>
.
.
.
这篇文章 几乎 回答了我的问题,但是有人可以帮助我解决我的特殊情况吗? 还有一件事:修改 Web.config 不会重新启动应用程序吗? (即当我的 CreateUserWizard 类的 CreatedUser
事件处理程序中的目录创建/授权代码中的代码运行时?)
谢谢您的帮助!
I've got an ASP.NET application that uses the CreateUserWizard to register new users. Part of my registration process is creating a "home directory" for the user where they'll be able to upload files.
I'd like to use the ASP.NET authorization features to restrict access to the "home directory". Only the registered user assigned to the directory should have access.
I think I know how to do this declaritively with Web.config. I can do something like the following:
<?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 almost answers my question, but can someone help me out with my particular situation? One more thing: doesn't modifying the Web.config restart the application? (i.e. when my code in the directory creation/authorization code in my CreatedUser
event handler of the CreateUserWizard class is run?)
Thank you for your help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在用户的文件夹中放置一个新属性,而不是在应用范围的
web.config
中使用location
属性。 在这个新文件中,您指定该特定文件夹的授权规则,它们将覆盖应用程序范围的规则。由于这不会更改您的原始
web.config
文件,因此您的应用程序将不会重新启动。Instead of using the
location
attribute in your app-wideweb.config
, you can place a new one inside the user's folder. In this new file, you specify the authorization rules for that specific folder, and they will override the app-wide rules.As this does not change your original
web.config
file, your application will not restart.