我的 asp.net webform 应用程序中有以下文件夹结构。
_AdminUser
_ModeratorUser
_EmployeeUser
Images
js
css
ckeditor
App_Code
errorPages
Default.aspx
News.aspx
Article.aspx
到目前为止,我只有一种类型的用户用来编辑网站内容。我曾经简单地授权用户并将授权用户重定向到文件夹“_AdminUser”,以便他们
可以对网站进行更改。
web.config 中的以下代码足以让我正常工作。
<authentication mode="Forms">
<forms loginUrl="~/_Login.aspx" timeout="2880"/>
</authentication>
<location path="_adminUser">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
<location path="ckeditor">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
在我的新项目中,我必须创建三种不同类型的用户
- 管理员用户( super 用户,可以访问不同文件夹中的所有文件)
- 主持人用户(此类用户只能访问此文件夹
_ModeratorUser
和其他常规文件夹中的文件,但无法访问_AdminUser
或_EmployeeUser
) - 员工用户(此类用户只能访问此文件夹_EmployeeUser
和其他常规文件夹中的文件,但无法访问
_AdminUser或
_EmployeeUser`)
为了实现这一目标,我创建了三种类型的角色 Admin
、Moderator
和 Employee
。当我创建新用户时,我将其分配给特定角色,并且我希望每个角色都有权访问不同的文件夹,如上所述。
但我不确定如何修改 web.config 文件,以便获得这种基于角色的权限。我一直在寻找这样的教程,但到目前为止还没有运气。我看过的其他教程似乎没有解决我的问题。如果您能指出正确的方向,我将不胜感激。
最佳答案
我假设您使用 ASP.Net 成员资格和角色提供程序。如果是这样,您需要在每个文件夹中使用单独的 web.config 来限制权限。
Admin 文件夹内的 web.config
以下 web.conf 设置(位于 Admin 文件夹内)仅允许具有 Admin
角色的用户访问 Admin 文件夹内的文件。其他用户无法访问这些文件。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<authorization>
<allow roles="Admin" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
关于Asp.net Web 表单和不同文件夹的基于角色的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17826420/