今天主要是想搞清楚,网站是怎么样根据PortalCfg.xml里的配置信息来更改页面,实现这种灵活配置的功能的.主要涉及到的文件有配置文件及相关的架构和数据集文件(PortalCfg.xml, PortalCfg.xsd, PortalCfg.cs),Global.asaxConfiguration.cs这几个文件,然后就是根据具体的页面来看里面到底是怎么在工作的(DesktopPortalBanner.ascs, DesktopDefault.aspx.

看过之后也觉得不是很难,主要描述如下:

1.       客户端发起一个请求后, BeginRequest事件被触发,Global类里的Application_BeginRequest方法执行,这个方法首先获得Url中传的两个参数tabIndex(页面导航控件中,标签在DataList中的索引.主要是确定选择了哪个链接,然后会让该链接失效,即不能在本页面点击本页面的链接)tabID(这个就是标签的ID).

然后是根据这两个参数,获得一个PortalSettings对象,这个对象就包含了请求的标签连接中所有的配置信息,还获得SiteConfiguration 对象(xml配置文件的处理类的实例), 并将这个对象存放在HttpContext.Current.Items,以便其他地方使用起来很方便.(以前没这样用过!)

2.       DesktopDefault.aspx页面为例,通过下面的代码实现动态的加载页面模块.

学习ASP.NET Starter Kit[Portal](20050701)// Obtain PortalSettings from Current Context
学习ASP.NET Starter Kit[Portal](20050701)
 PortalSettings portalSettings = (PortalSettings) HttpContext.Current.Items["PortalSettings"];
学习ASP.NET Starter Kit[Portal](20050701)
//学习ASP.NET Starter Kit[Portal](20050701).
学习ASP.NET Starter Kit[Portal](20050701)
// Dynamically Populate the Left, Center and Right pane sections of the portal page
            }


总体来说代码不难,if ((_moduleSettings.CacheTime) == 0) {}else{}

   else里面的缓存功能是如何实现的,我还没有搞清楚!!郁闷~~~~~~~

 

就这样动态加载页面模块的功能实现了,现在终于对这个功能有所了解了!!!

~~~~~~~对了,今天还看了角色身份认证的实现,里面竟然还有Bug,郁闷~~~~~~

这个实现得也很简单.

 

明天准备具体的看代码,但也不会很仔细的看,只是大致看看,学习一些编程技巧和补充自己的知识吧!!

相关文章: