Enterprise Library 2.0 Hands On Lab 翻译(13):安全应用程序块(二)

本文介绍如何使用Enterprise Library实现基于角色的应用程序授权。通过实际案例,详细指导如何配置授权规则及验证用户权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

练习2:在应用程序中使用基于角色的授权

通过该练习将学习使用AuthorizationProvider在应用程序中进行基于角色的授权。

 

第一步

BugSmak.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Security\exercises\ex02\begin,并编译。

 

第二步 企业库配置工具

1.使用Enterprise Library配置工具配置应用程序,可以通过开始菜单打开该配置工具,选择所有程序| Microsoft patterns and practices | Enterprise Library | Enterprise Library Configuration,并打开App.config文件。或者直接在Visual Studio中使用该工具打开配置文件。

2.在解决方案管理器中选中App.config文件,在View菜单或者在右键菜单中选择Open With…,将打开OpenWith对话框,单击Add按钮。

3.在Add Program对话框中,设置Program name指向EntLibConfig.exe文件,默认的路径为C:\Program Files\Microsoft Enterprise Library January 2006\bin,设置Friendly nameEnterprise Library Configuration,单击OK按钮。

Visual Studio会把配置文件(App.config)作为一个命令行参数传递给EntLibConfig.exe

4.在Open With对话框中,选中Enterprise Library Configuration并单击OK按钮。

 

第三步 使用企业库配置工具添加授权规则

1.在应用程序上右击并选择New | Security Application Block

2.添加新的Authorization Rule Provider。选中Security Application Block | Authorization节点,选择Action | New | Authorization Rule Provider菜单命令。

3.设置属性NameBugSmak Rules

4.选中Security Application Block | Authorization | BugSmak Rules节点,选择Action | New | Rule菜单命令。

5.在Expression属性上点击ellipsis打开角色表达式编辑器。

6.设置如下属性并单击Ok按钮

Rule Name = Raise Bug

Expression = R:Developer OR R:Employee OR R:Manager

用户必须在Developer, Employee或者 Manager角色中。

7.分别添加如下规则:

Rule Name

Expression

Raise Bug **

R:Developer OR R:Employee OR R:Manager

Assign Bug

R:Manager

Resolve Bug

R:Developer OR R:Manager

8.选择Security Application Block节点并设置如下属性:

DefaultAuthorizationInstance = BugSmak Rules

 

第四步 添加基于授权的任务

1.打开文件TaskForms \ RaiseBug.cs的源代码,添加如下代码:

None.gif // [PrincipalPermission(SecurityAction.Demand, Role = "Employee")]
None.gif
None.gif
// [PrincipalPermission(SecurityAction.Demand, Role = "Developer")]
None.gif
None.gif
// [PrincipalPermission(SecurityAction.Demand, Role = "Manager")]
None.gif

None.gif
public   static  RaiseBug Create()
None.gif
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
// TODO: Check Authorization
InBlock.gif

InBlock.gif    
if (!SecurityHelper.Authorized(AuthRule.Raise))
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
InBlock.gif        
throw new SecurityException();
InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    
return new RaiseBug();
InBlock.gif
ExpandedBlockEnd.gif}

其他两个窗体AssignBug.csResolveBug.cs添加的代码类似。

2.添加对如下程序集的引用。

Microsoft.Practices.EnterpriseLibrary.Security.dll

3.打开文件Security \ SecurityHelper.cs,添加如下命名空间。

None.gif using  Microsoft.Practices.EnterpriseLibrary.Security;

4.在方法Authorized中添加如下代码。

None.gif public   static   bool  Authorized( string  rule)
None.gif
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
InBlock.gif    
bool authorized = false;
InBlock.gif
InBlock.gif    
// TODO: Check rule-base authorization
InBlock.gif

InBlock.gif    IAuthorizationProvider ruleProvider;
InBlock.gif
InBlock.gif    ruleProvider 
= AuthorizationFactory.GetAuthorizationProvider();
InBlock.gif
InBlock.gif    authorized 
= ruleProvider.Authorize(Thread.CurrentPrincipal, rule);
InBlock.gif
InBlock.gif    
return authorized;
InBlock.gif
ExpandedBlockEnd.gif}

None.gif


5.运行应用程序,分别以Tom, DickHarry登录,测试他们的访问权限。

User

Task Access

Tom (Employee)

Raise New Bug

Dick (Developer)

Raise New Bug

Resolve Bug 

Harry (Manager)

Raise New Bug

Resolve Bug

Assign Bug

6.关闭应用程序。

 

更多Enterprise Library的文章请参考《Enterprise Library系列文章

 

内容概要:本文详细探讨了基于MATLAB/SIMULINK的多载波无线通信系统仿真及性能分析,重点研究了以OFDM为代表的多载波技术。文章首先介绍了OFDM的基本原理和系统组成,随后通过仿真平台分析了不同调制方式的抗干扰性能、信道估计算法对系统性能的影响以及同步技术的实现与分析。文中提供了详细的MATLAB代码实现,涵盖OFDM系统的基本仿真、信道估计算法比较、同步算法实现和不同调制方式的性能比较。此外,还讨论了信道特征、OFDM关键技术、信道估计、同步技术和系统级仿真架构,并提出了未来的改进方向,如深度学习增强、混合波形设计和硬件加速方案。; 适合人群:具备无线通信基础知识,尤其是对OFDM技术有一定了解的研究人员和技术人员;从事无线通信系统设计与开发的工程师;高校通信工程专业的高年级本科生和研究生。; 使用场景及目标:①理解OFDM系统的工作原理及其在多径信道环境下的性能表现;②掌握MATLAB/SIMULINK在无线通信系统仿真中的应用;③评估不同调制方式、信道估计算法和同步算法的优劣;④为实际OFDM系统的设计和优化提供理论依据和技术支持。; 其他说明:本文不仅提供了详细的理论分析,还附带了大量的MATLAB代码示例,便于读者动手实践。建议读者在学习过程中结合代码进行调试和实验,以加深对OFDM技术的理解。此外,文中还涉及了一些最新的研究方向和技术趋势,如AI增强和毫米波通信,为读者提供了更广阔的视野。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值