小强


For my summer
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

学习ASP.NET Starter Kit[Portal](20050702)

Posted on 2005-07-02 17:31  小 强  阅读(778)  评论(1编辑  收藏  举报

今天大概的把Portal的源码看完了,感觉还是比较容易理解的。流程很清晰,代码也不难,可能是这个项目本来就不难的原因吧。(当然也是因为我并没有深入的原因)

在权限控制上,是这样实现的:

1.  PortalCfg.xml配置文件里通过AccessRoles(针对Tab标签(首页导航中的链接)的权限)和EditRoles(具体Module的编辑权限)来设置。

2.  Global.asaxApplication_BeginRequest方法里获得PortalSettings(门户站点设置对象),并存储在HttpContext.Current.Items中(下面在判断是否具有模块的编辑权限时调用了)

3.  在页面中通过以下两种方法判断权限

PortalSecurity.IsInRoles("Admins")(amdin文件夹下的文件只用具有Admins权限就都可以访问)

PortalSecurity.HasEditPermissions(moduleId)(其他页面中判断是否具有编辑权限)

4.  根据上面的判断结果做出不同的响应。

 

另外具体的实现细节上,也有一些是我以前没见过的

1.  例如在列表框中选择指定项,通过点击上下按钮来实现排序的功能(在二十四画生的Blog 里有更多的说明 )

它这个里面的Order是以135…的形式标记的,然后上移就在原来的Order上减3,下移就加3,然后重新排列序号(还是形如135…,最后重新加载.

2.  这种用法没见过:

<asp:ImageButton ImageUrl=”/images/edit.gif” sourcePane=”contentPane” targetPane=”leftPane ” runat=”server” id=”contentLeftBtn” />

这里面sourcePanetargetPane两个标记肯定是自己加上去的,然后在程序里这样使用

在这个ImageButton的单击事件里

String sourcePane = ((ImageButton)sender).Arrtibutes[“sourcePane”];

呵呵~~~原来这些标记都是可以自己加的啊!! 

我觉得Portal StarterKit最值得看的就是如何通过对xml文件的配制,动态的修改整个网站模块是否显示以及如何显示了... 

ASP.NET Starter Kits中还有一个community(可能类似bbs)的项目,下个星期想先简单的看看,如果快的话,接下来我想看看DotText