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

发布于 2024-07-13 04:40:52 字数 1022 浏览 0 评论 0原文

我有一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岁月流歌 2024-07-20 04:40:52

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

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

Instead of using the location attribute in your app-wide web.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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文