您的位置:首页 > 其它

微软企业库5.0学习笔记(十六)

2010-06-06 20:30 393 查看
代理对象(Proxy Object)会通过Handler链定位到真实对象(Real Object),而Policy则被注入到代理对象和真实对象中。整个流程如图:

日志文本格式化

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 ProvidersAdd 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 RulesAdd Namespace Matching Rule,并添加一个匹配对象,Name设置为test(请确保和你要匹配的Namespace名称相同):



9.在Authorizes面板上右键Add HandlersAdd Authorization Call Handler,属性设置如下图所示:



10.好了,至此我们也将验证规则模块和Poliy模块绑定起来了,下面可以运行程序进行验证了,程序已打包在下方可下载,我只是将演示效果截图给大家看看,详细内容请参看源代码:









再点击查看日志,会发现之前的操作都被记录下来了:



好了, PolicyInjection Application Block模块就讲到这,大家有什么好的想法可以给我留言~

下载源代码:

点击此处\(^ ^)/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: