Asp.net Web 表单和不同文件夹的基于角色的权限

标签 asp.net webforms asp.net-membership roleprovider

我的 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>

在我的新项目中,我必须创建三种不同类型的用户

  1. 管理员用户( super 用户,可以访问不同文件夹中的所有文件)
  2. 主持人用户(此类用户只能访问此文件夹 _ModeratorUser 和其他常规文件夹中的文件,但无法访问 _AdminUser_EmployeeUser )
  3. 员工用户(此类用户只能访问此文件夹_EmployeeUser和其他常规文件夹中的文件,但无法访问_AdminUser_EmployeeUser`)

为了实现这一目标,我创建了三种类型的角色 AdminModeratorEmployee。当我创建新用户时,我将其分配给特定角色,并且我希望每个角色都有权访问不同的文件夹,如上所述。

但我不确定如何修改 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/

相关文章:

javascript - CustomValidator 在 asp.net 中无法正常工作

asp.net - 关于 UpdatePanel 内部?

c# - mschart 缩放和滚动

c# - Webforms 中是否有一种方法可以在页面加载时判断回发是由 Ajax 请求引起的还是由常规的完整回发引起的?

asp.net - 是否可以在 asp.net 成员资格中使用用户名作为外键

c# - 在 ASP.NET MVC 3 中使用 ASP.NET Membership e Profile

c# - ASP.NET Timer 只在 Debug模式下工作

asp.net - 为什么程序立即启动和退出?

c# - 自定义事件多次触发

asp.net - 找回密码