动态允许角色访问页面或文件夹

发布于 2024-12-13 13:33:30 字数 339 浏览 3 评论 0原文

我正在使用 asp.net 网络表单。我使用 web.config 来定义哪些角色可以访问页面和文件夹。像这样

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

我怎样才能动态地做到这一点?因此,无需部署,我可以添加一个角色,例如“开发人员”,

有没有办法可以从数据库中读取这些角色? 谢谢

I am using asp.net webforms. I use a web.config to define what roles can access pages and folders. like this

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

how can I do this dynamically? so without deploying I could add a role, like 'Developer'

Is there a way I could read these from a database?
thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

背叛残局 2024-12-20 13:33:31

不确定您在这里到底要问什么...

您看到的授权称为 URL 授权 并由内置 ASP.NET 模块提供。此实现使用关联的上下文IPrincipal (HttpContext.User) 来查看经过身份验证的用户是否是已配置角色的成员。因此,如果您想拥有自己的任意角色(而不是 Windows 角色),您可以提供自己的 IPrincipal 实现,该实现将从数据库(或任何其他数据库)中检索为当前用户分配的角色。您要使用的源)。但是,授权信息仍将保留在配置文件中。

如果您想移动授权信息(谁可以访问什么),那么您可以实现自己的授权模块。该模块可以从数据库中读取此信息,并按照您想要的方式强制执行访问安全性。

Not sure what exactly are you asking here...

The authorization sighted by you is known as URL Authorization and provided by in-build ASP.NET module. This implementation uses the context associated IPrincipal (HttpContext.User) to see the authenticated user is member of configured role. So if you want to have your own arbitrary roles (instead of windows roles), you can provide your own IPrincipal implementation that would retrieve the assigned roles for the current user from the data-base (or any other source that you want to use). However, the authorization information will still remain in the configuration file.

In case, you want to move the authorization information (who can access what) then you can implement your own authorization module. The module can read this information from the database and enforce the access security the way you wanted.

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