惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
Vulnerabilities – Threatpost
GbyAI
GbyAI
P
Proofpoint News Feed
L
LINUX DO - 热门话题
P
Palo Alto Networks Blog
A
About on SuperTechFans
T
Tenable Blog
M
MIT News - Artificial intelligence
IT之家
IT之家
I
Intezer
D
DataBreaches.Net
爱范儿
爱范儿
T
Threatpost
C
CERT Recently Published Vulnerability Notes
云风的 BLOG
云风的 BLOG
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
K
Kaspersky official blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Y
Y Combinator Blog
Cyberwarzone
Cyberwarzone
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
Spread Privacy
Spread Privacy
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
AWS News Blog
AWS News Blog
博客园 - 聂微东
C
Check Point Blog
S
Securelist
有赞技术团队
有赞技术团队
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
D
Docker
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tailwind CSS Blog
L
Lohrmann on Cybersecurity
G
Google Developers Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog

博客园 - oscar_expansion

test - oscar_expansion - 博客园 WebPart Templates for VS.NET下载地址链接 易用性就这三条原则 将html源代码规范化,转换成XSL代码的asp工具(宝玉师傅) C#入门代码集 - oscar_expansion - 博客园 C#.Net函数和方法集 ASP.NET页面间的传值的几种方法 认识ASP.NET配置文件Web.config ASP Forum2.0学习笔记之二---了解Master Pages库 《Asp.Net Forums2.0深入分析》之 Asp.Net Forums是如何实现代码分离和换皮肤的 《Asp.Net Forums2.0深入分析》序(宝玉) Asp.Net Forums2配置文件(web.config)简要说明 URL欺骗之以假乱真 ASP.NET Forums 2.0 新手安装指南 论坛在线人员的一个显示过程(转自ASP.NET Forums 官方中文网站) 日期数据转换为字符串再转换为日期时要注意的一点(转自http://blog.joycode.com/) 彻底删除一个项目中的源代码管理信息(转自http://blog.joycode.com/) 从网络到现实-------美女写的2004高考作文 美国金牌推销员的成功秘诀 -做人做事箴言录
AspNetForums中对于用户权限.......
oscar_expansion · 2005-06-09 · via 博客园 - oscar_expansion

AspNetForums中对于用户权限,是类似于Windows系统采用基于角色(Role)的权限控制,这样,我们就可以根据需要,设定不同的角色,设置各个角色的权限,并将各个用户属于不同的角色。根据用户所属的角色,来判断用户可以有哪些权限,进行哪些操作。

先看看数据库设计
forums_Users表,用户表,UserID为主键,唯一确定一个用户
forums_Roles表,角色表,RoleID为主键,唯一确定一个角色
forums_UsersInRoles表,用户和角色对应关系表,存储用户所在的角色
forums_ForumPermissions表,角色在某版块的权限,记录了在每个版块中各个角色可以有权限进行哪些操作

再看看是如何来判断用户操作权限的:
当用户登录后,要获取论坛所有版块的信息并缓存,在获取版块信息的同时,要获取当前用户在每个版块操作(如发表新帖、投票、附件等)的权限。操作权限有三种:"有权限"、"无权限"和"未设置",如果是未设置,那么就看这个操作的默认权限是什么。一个用户可以属于多个角色,每个角色对应的操作权限不一样,要判断这个用户有没有当前操作的权限,则遍历这个用户所属的所有角色,如果任一角色有权限,那么该用户就有该操作的权限。具体实现请参考源码:
Components\Forums.cs中的GetForums(ForumContext forumContext, int userID, bool ignorePermissions, bool cacheable)方法和Components\Provider\ForumsDataProvider.cs中PopulateForumPermissionRightFromIDataReader方法。

角色和web.config的结合
Asp.Net有一个功能就是可以用于控制对 URL 资源的客户端访问(可参考QuickStart上的说明)。它对于用于生成请求的 HTTP 方法(GETPOST)是可配置的,并且可被配置为允许或拒绝访问用户组或角色组。这个方法也被应用到AspNetForums中,例如在admin目录(管理员操作相关页面)和Moderate目录(版主操作相关页面)下都有一个web.config目录,通过web.config,可以设定其所在目录的URL客户端访问权限。

以Admin目录下的web.config中的配置为例:
 <authorization>
  <allow roles="Global Administrators" />
  <allow roles="Site Administrators" />
  <deny users="*" />
 </authorization>
这个表示对于属于Global Administrators角色和Site Administrators角色授权,其他任何用户都禁止访问该目录下的页面。因为对于部分页面,希望版主也可以进行访问,那么可以增加如下配置:
    <location path="ForumAdmin.aspx">
      <system.web>
        <authorization>
          <allow roles="Global Administrators" />
          <allow roles="Site Administrators" />
          <allow roles="Global Moderators" />
          <allow roles="Site Moderators" />
          <deny users="?" />
        </authorization>
      </system.web>
    </location>   
这样,对于/Admin/ForumAdmin.aspx这个URL,属于Global Moderators或Site Moderators角色的用户也可以有权访问。