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


练习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
用户必须在DeveloperEmployee或者 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.gif
{
InBlock.gif    
// TODO: Check Authorization
InBlock.gif

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

InBlock.gif
InBlock.gif    
return new RaiseBug();
InBlock.gif
ExpandedBlockEnd.gif}
其他两个窗体 AssignBug.cs和 ResolveBug.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.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系列文章












本文转自lihuijun51CTO博客,原文链接: http://blog.51cto.com/terrylee/67644  ,如需转载请自行联系原作者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:使用 JavaScript 编写的杀死幽灵游戏(附源代码) 杀死鬼魂游戏是使用 Vanilla JavaScript、CSS 和 HTML 画布开发的简单项目。这款游戏很有趣。玩家必须触摸/杀死游荡的鬼魂才能得分。您必须将鼠标悬停在鬼魂上 - 尽量得分。鬼魂在眨眼间不断从一个地方移动到另一个地方。您必须在 1 分钟内尽可能多地杀死鬼魂。 游戏制作 这个游戏项目只是用 HTML 画布、CSS 和 JavaScript 编写的。说到这个游戏的特点,用户必须触摸/杀死游荡的幽灵才能得分。游戏会根据你杀死的幽灵数量来记录你的总分。你必须将鼠标悬停在幽灵上——尽量得分。你必须在 1 分钟内尽可能多地杀死幽灵。游戏还会显示最高排名分数,如果你成功击败它,该分数会在游戏结束屏幕上更新。 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox。要玩游戏,首先,单击 index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值