分享
 
 
 

.NET应用程序的授权模型使系统更易管理

王朝c#·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

正确设计的授权机制使系统更易部署和管理。基于Active Directory等企业身份验证机制来授权,你的应用程序就能与公司现有的安全策略无缝地集成。在n层应用程序中,每一层都可使用授权,从而创建出更灵活的系统。

在表示层,你可基于授权用户的“角色”来自定义用户界面(例如,为管理阶级的用户显示管理菜单,但在普通用户面前隐藏此菜单)。在业务层,可考虑在代码主体中验证授权,这就使黑客或其他非法用户不易在未经正确授权的情况下使用一个代码小节。在数据层,通过在检索或插入数据之前请求授权,可确保只有合法用户才能更改数据。

授权类型

.NET系统主要运行3种授权类型:Windows授权、代码访问安全性(Code Access Security,CAS)授权或者应用程序专用授权。综合运用这些授权机制,就能创建一个非常安全的系统。下面让我们详细讨论它们。

Windows授权

利用访问控制列表(Access Control Lists,ACL)来设置权限,系统管理员可控制哪些用户有权访问特定的系统资源。通常要由运行应用程序的那个系统的管理员来控制这些设置。由于生产环境和测试/认证环境中的管理员通常是不同的人,所以必须正确文档化特定的授权设置,确保应用程序最终能正确运行。这些设置包括:

Active Directory权限

NTFS管理的文件权限

Web Config设置,它为基于ASP.NET的应用程序限制对特定URL的访问

服务器产品的特有权限,产品包括Microsoft SQL Server(例如表、视图或存储过程)或者Microsoft Exchange(例如邮箱、公共文件夹等)

CAS授权

Windows授权限制对单个对象的访问。相反,CAS授权允许应用程序根据一系列批准的权限(名为权限集)来执行。这些权限集是基于“凭证”(evidence)而建立的,包括代码的来源、它的出版商及其“强名称”。必须注意到,CAS授权独立于其他任何授权机制运行,这样可有效保护系统资源,无论用户被验证成什么身份。

例如,假定一个权限集禁止来自因特网的代码删除用户机器上的文件,那么这个限制将永远有效,无论用户的身份被验证成“系统管理员”,还是验证成“来宾”。可用Caspol.exe命令行实用程序来配置CAS授权,或使用Microsoft .NET Framework Configuration控制台来配置(后者通过控制面板的“管理工具”来访问)。

应用程序专用授权

即使Windows授权用户执行一个操作,而且正在执行的代码具有恰当的权限,但它们还要通过第3道关卡的考验――你的应用程序可决定是否授权特定用户执行操作。通过创建应用程序专用的一个授权框架,就可根据用户的身份验证主体(authenticated principal)来响应不同的用户,并进一步控制用户有权采取的操作。这种授权机制主要用于管理或限制对特定应用程序资源的访问,或根据通过身份验证的主体来强制不同的业务规则。

我在自己的Web和Windows应用程序中广泛运用了应用程序专用授权。在Web应用程序中,我通常用它动态生成菜单,使用户只看到他们有权看到的选项。对于Windows应用程序,我将授权代码嵌入业务逻辑中,防止用户执行需要更高级授权的代码。为了有效地使用和管理授权,你需要一个公共场所来存储权限,而且要采取一种方式为用户分组。这样一来,一旦权限需要更改,就不必单独配置每个用户。

“角色”的作用

.NET框架允许你对一个用户组授权,利用“角色”为组内的所有用户指派相同的安全权限。由于管理的是“角色”而非单独的用户,所以当用户四处移动时,你的应用程序无需改变。另外,假定你管理的是5个角色,而不是500名用户,那么花在管理应用程序上的时间明显少得多。使用Active Directory来存储身份验证信息,你的.NET应用程序就能自动使用Active Directory中内建的用户和角色能力。此外,使用与SQL Server集成的安全机制,可以扩展这些角色,将权限关联到SQL Server对象,从而将安全性提升到一个新台阶,而且无需额外的编码。

即使决定不使用Active Directory,也可直接针对IPrincipal对象和IsInRole方法来编程,从而指派来自外部存储(例如SQL数据库表、XML文件或者使用套接字等接口的一个外部系统)的角色,并验证角色的成员关系。

授权是任何.NET系统的关键设计元素。理解了3种主要的授权类型后,你可在设计自己的系统时选用其中的一种或者多种。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有