在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
今天大概的把Portal的源码看完了,感觉还是比较容易理解的。流程很清晰,代码也不难,可能是这个项目本来就不难的原因吧。(当然也是因为我并没有深入的原因) 在权限控制上,是这样实现的: 1. 在PortalCfg.xml配置文件里通过AccessRoles(针对Tab标签(首页导航中的链接)的权限)和EditRoles(具体Module的编辑权限)来设置。 2. 在Global.asax的Application_BeginRequest方法里获得PortalSettings(门户站点设置对象),并存储在HttpContext.Current.Items中(下面在判断是否具有模块的编辑权限时调用了) 3. 在页面中通过以下两种方法判断权限 PortalSecurity.IsInRoles("Admins")(amdin文件夹下的文件只用具有Admins权限就都可以访问) PortalSecurity.HasEditPermissions(moduleId)(其他页面中判断是否具有编辑权限) 4. 根据上面的判断结果做出不同的响应。 另外具体的实现细节上,也有一些是我以前没见过的 1. 例如在列表框中选择指定项,通过点击上下按钮来实现排序的功能(在二十四画生的Blog 里有更多的说明 ) 它这个里面的Order是以1,3,5…的形式标记的,然后上移就在原来的Order上减3,下移就加3,然后重新排列序号(还是形如1,3,5…),最后重新加载. 2. 这种用法没见过: <asp:ImageButton ImageUrl=”/images/edit.gif” sourcePane=”contentPane” targetPane=”leftPane ” runat=”server” id=”contentLeftBtn” /> 这里面sourcePane和targetPane两个标记肯定是自己加上去的,然后在程序里这样使用 在这个ImageButton的单击事件里 String sourcePane = ((ImageButton)sender).Arrtibutes[“sourcePane”]; 呵呵~~~原来这些标记都是可以自己加的啊!! |
请发表评论