微软企业库5.0学习笔记(十六)
2010-06-06 20:30
393 查看
代理对象(Proxy Object)会通过Handler链定位到真实对象(Real Object),而Policy则被注入到代理对象和真实对象中。整个流程如图:
日志文本格式化
5.好,我们再看看需求,我们还需要创建3个角色和一些用户.在此就顺便讲解EL中的Application模块吧,因为它的功能很简单,就不专门做一个教程了,在此我们用它来配置角色和用户.选择Blocks菜单 ,单击Add Application Settings .点击Setting面板右上角的加号,添加一些用户,分别是
Key: User:Alice Value:Teller
Key: User:Bob Value:Assistant
Key: User:Charlie Value:Janitor
其中Key的值中User:为前缀,表示添加为用户,后面跟着的是用户名,而Value值表示该用户所隶属的角色,在程序中我们就可以写个函数从该模块中获取到用户名和角色啦(此处的用户名和角色一般是存储在数据库或者XML文件中,在此用Application模块完全是想借此机会讲解该模块而已,大家可以选用其他的方案):
6.好了,有了用户和角色,接下来要配置验证模块了.这就需要我们之前讲过的Security模块了,该模块的详细介绍在我之前的文章中已经写出,在此不多讲,只讲应用.
选择Blocks菜单 ,单击Add Security Settings .点击Authorization Providers面板右上角的加号按钮—Add Authorization Providers—Add AuthorizationRule Provider.
7.在Authorization Rule Provider面板上右键—AddAuthorization Rules,添加一个验证规则.在此我们设置3中验证规则,将 BankAccount类中的存款,取款,查账权限分别分配给刚刚建立的3个角色中,设置如下:
Name: Deposit Rule Expression: R:Teller
Name: Withdraw Rule Expression: R:Teller
Name: GetCurrentBalance RuleExpression: R:Teller OR R:Assistant
8.设置好了验证规则模块,当然要想办法和我们的Poliy模块关联起来啦,因为是身份验证,所以匹配范围应该在整个Namespace,因此让我们回到Poliy模块, 点击Policies面板右上角的加号按钮—Add Policy,将Name属性修改为Authorize,再在Authorize面板上右键—Add Matching Rules—Add Namespace Matching Rule,并添加一个匹配对象,Name设置为test(请确保和你要匹配的Namespace名称相同):
9.在Authorizes面板上右键—Add Handlers—Add Authorization Call Handler,属性设置如下图所示:
10.好了,至此我们也将验证规则模块和Poliy模块绑定起来了,下面可以运行程序进行验证了,程序已打包在下方可下载,我只是将演示效果截图给大家看看,详细内容请参看源代码:
再点击查看日志,会发现之前的操作都被记录下来了:
好了, PolicyInjection Application Block模块就讲到这,大家有什么好的想法可以给我留言~
下载源代码:
点击此处\(^ ^)/
日志文本格式化
Timestamp:{timestamp} Message:{message} Category:{category} Type:{property(TypeName)} Method:{property(MethodName)} Parameters:{dictionary({key} : {value})} ReturnValue: {property(ReturnValue)} Exception:{property(Exception)} CallTime: {property(CallTime)} Priority:{priority} EventId:{eventid} Severity:{severity} Title:{title} Machine:{machine} ApplicationDomain: {appDomain} ProcessId: {processId} ProcessName: {processName} Win32Thread Id: {win32ThreadId} Thread Name: {threadName}
5.好,我们再看看需求,我们还需要创建3个角色和一些用户.在此就顺便讲解EL中的Application模块吧,因为它的功能很简单,就不专门做一个教程了,在此我们用它来配置角色和用户.选择Blocks菜单 ,单击Add Application Settings .点击Setting面板右上角的加号,添加一些用户,分别是
Key: User:Alice Value:Teller
Key: User:Bob Value:Assistant
Key: User:Charlie Value:Janitor
其中Key的值中User:为前缀,表示添加为用户,后面跟着的是用户名,而Value值表示该用户所隶属的角色,在程序中我们就可以写个函数从该模块中获取到用户名和角色啦(此处的用户名和角色一般是存储在数据库或者XML文件中,在此用Application模块完全是想借此机会讲解该模块而已,大家可以选用其他的方案):
6.好了,有了用户和角色,接下来要配置验证模块了.这就需要我们之前讲过的Security模块了,该模块的详细介绍在我之前的文章中已经写出,在此不多讲,只讲应用.
选择Blocks菜单 ,单击Add Security Settings .点击Authorization Providers面板右上角的加号按钮—Add Authorization Providers—Add AuthorizationRule Provider.
7.在Authorization Rule Provider面板上右键—AddAuthorization Rules,添加一个验证规则.在此我们设置3中验证规则,将 BankAccount类中的存款,取款,查账权限分别分配给刚刚建立的3个角色中,设置如下:
Name: Deposit Rule Expression: R:Teller
Name: Withdraw Rule Expression: R:Teller
Name: GetCurrentBalance RuleExpression: R:Teller OR R:Assistant
8.设置好了验证规则模块,当然要想办法和我们的Poliy模块关联起来啦,因为是身份验证,所以匹配范围应该在整个Namespace,因此让我们回到Poliy模块, 点击Policies面板右上角的加号按钮—Add Policy,将Name属性修改为Authorize,再在Authorize面板上右键—Add Matching Rules—Add Namespace Matching Rule,并添加一个匹配对象,Name设置为test(请确保和你要匹配的Namespace名称相同):
9.在Authorizes面板上右键—Add Handlers—Add Authorization Call Handler,属性设置如下图所示:
10.好了,至此我们也将验证规则模块和Poliy模块绑定起来了,下面可以运行程序进行验证了,程序已打包在下方可下载,我只是将演示效果截图给大家看看,详细内容请参看源代码:
再点击查看日志,会发现之前的操作都被记录下来了:
好了, PolicyInjection Application Block模块就讲到这,大家有什么好的想法可以给我留言~
下载源代码:
点击此处\(^ ^)/
相关文章推荐
- 微软企业库5.0学习笔记(三十三)数据访问模块
- 微软企业库5.0学习笔记(十)
- 微软企业库5.0学习笔记(十七)【转】
- 微软企业库5.0学习笔记(四十四)实战数据验证模块
- 微软企业库5.0学习笔记(九)ASP.NET WEB应用程序
- 微软企业库5.0学习笔记(三十三)数据访问模块
- 微软企业库5.0学习笔记(三)企业库主要内容
- 微软企业库5.0学习笔记(三十四)数据访问模块 各种获取数据的方式
- 微软企业库5.0学习笔记(五)
- 微软企业库5.0学习笔记(十四)
- 微软企业库5.0学习笔记数据验证模块
- 微软企业库5.0学习笔记(七)存储容器的引用
- 微软企业库5.0学习笔记(八)windows窗体和WPF应用
- 微软企业库5.0学习笔记(三十五)数据访问模块 DataSet以及数据库事务
- 微软企业库4.1学习笔记(十六)缓存模块4 服务器场中的缓存使用
- 微软企业库4.1学习笔记(十六)缓存模块4 服务器场中的缓存使用
- 微软企业库5.0学习笔记(六)
- 微软企业库5.0学习笔记(十二)
- 微软企业库5.0学习笔记(0)企业库主要内容
- 微软企业库4.1学习笔记(十六)缓存模块4 服务器场中的缓存使用