|
3、 易于授权
4、 易于审计
WAF采用 Mediator 和 Command 设计模式,实现了一种标准的可配置的控制组件,此种设计模式可使让.NET在MVC的软件系统结构下更好的工作。使用此设计模式后整个Web应用将呈现如下结构:

其中
1、 Waf_ctrl.aspx是整个系统的唯一入口点
2、 Waf_ctrl.aspx 通过请求参数中的Cmd,确定处理请求的页面,并将请求转发给此页面。
3、 Cmd及执行Cmd的页面可以通过配置完成。
关键技术
1、 Command
WAF采用Command的方式达到中心控制、避免页面间相互连接的目的。
对于每个页面,其所需要了解的就是命令,每个页面可以
1、 接受并执行命令。
2、 在<a href=”…”>或<Form action>中指定处理用户请求的命令
3、 直接发送命令。
如一个用户Login页面login.aspx
1、 首先其接受并执行Login命令,显示Login页面,其中Form编码如下
<form action=”main.aspx?cmd=Login”>
2、 当用户不是注册用户,并点击Register注册时,login.aspx需要在页面中指定处理注册请求的命令,如
< a href=”main.aspx?cmd=Register” >Login</a>
3、 当用户输入用户名和密码,并点击”Login”时,执行后台的LoginButton_Click,验证用户的合法性。
4、 当用户验证成功,需要向用户显示付款页面时(如在 Online-shopping 中),Login.aspx可以直接发送Checkout 命令:
waf.Mediator.ExcuteCommand(“Checkout”, …); // this class provide by waf
控制流将直接转移到相应的命令执行页面,将显示Checkout 页面。
对于Command 在Web Page中的标识和传递有多种方式,WAF采用了URL的方式。
2、 唯一入口点
WAF需要使用唯一入口点,来实施中心控制
配置唯一入口点有两种方式
1、 直接配置,如唯一入口点为main.aspx,在编写页面时,输入
<a href=”main.aspx?cmd=welcome&other_parameter=value”></a>
<form action = “main.aspx?cmd=login”>
采用这种方式,如果入口点改变将会带来极大的维护工作量。
2、 WAF方式,WAF提供了一套自定义控件,其隐藏了入口点的具体位置,并且保持了与HTML相应元素的语义:如
<waf:a href=”welcome?other_parameter=value”></waf:a>
<waf:from action=”login”> <waf:form>
这样入口点的位置与具体页面无关,并可随时改动。
3、 Command的配置与执行
WAF的关键所在是Command的配置与执行,WAF提供了waf.Mediator.Mediator类,及与其对应的 waf.control.xml,在waf.control.xml中可以对Command 及其执行页面的配置
<?xml version="1.0" encoding="utf-8" ?>
<Control>
<Default-page>web/Default.aspx</Default-page>
<Error-page>web/Default.aspx</Error-page>
<Command-Set>
<Command name="Welcome" Executor = "web/Default.aspx"></Command>
<Command name="Category" Executor = "web/Category.aspx"></Command>
</Command-Set>
</Control>
其中:
<Default-Page>指定了没有任何Cmd 命令时显示的页面。
<Error-page>指定了Cmd错误时显示的页面
上一页 [1] [2] [3] [4] 下一页 [办公软件]RIGHT函数和逻辑与&和Value函数在Excel中的应用举… [聊天工具]Pointers 与 References(一) [聊天工具]Pointers 与 References(二) [聊天工具]用POPO股海实时通功能 与POPO股神侃股票__天极Yes… [常用软件]Expression3 与intuos2应用实例 [常用软件]在C/S体系中设置工作站与服务器的时钟同步 [VB.NET程序]vb.net 与 XML 的操作 [Delphi程序]Introduction to Design Patterns in Delphi [Delphi程序]Delphi 与 FORTRAN语言的混合编程 [Delphi程序]RSS 与 blog 阅读器:什么是 RSS 与 Atom ?
|