练习2:在应用程序中使用基于角色的授权 3.在Add Program对话框中,设置Program name指向EntLibConfig.exe文件,默认的路径为C:\Program Files\Microsoft Enterprise Library January 2006\bin,设置Friendly name为Enterprise Library Configuration,单击OK按钮。
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节点并设置如下属性: 第四步 添加基于授权的任务 4.在方法Authorized中添加如下代码。
5.运行应用程序,分别以Tom, Dick和Harry登录,测试他们的访问权限。
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.关闭应用程序。
通过该练习将学习使用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按钮。

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.设置属性Name为BugSmak 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.分别添加如下规则:

DefaultAuthorizationInstance = BugSmak Rules
1.打开文件TaskForms \ RaiseBug.cs的源代码,添加如下代码:
其他两个窗体AssignBug.cs和ResolveBug.cs添加的代码类似。
2.添加对如下程序集的引用。
Microsoft.Practices.EnterpriseLibrary.Security.dll
3.打开文件Security \ SecurityHelper.cs,添加如下命名空间。