幼儿园在线幼儿园网站幼儿园评论www.yeyweb.com免费幼儿园网站建设

『转载』Portal学习总结

1.网站实现原理:
1>首先自定义一个XML文件用于定义网站的结构,xml的结构由一个DataSet确定,然后再定义一个配置事务组件Configuration.cs(6个类),用于操作DataSet来读写该xml文件,从而实现网站配置的更改及管理;
2>在客户端每次发送请求时,都会在Global.asax中的Application_BeginRequest事件中使用配置事务组件加载当前页的的配置信息(PortalSettings),如果网站的配置信息(SiteSettings)为空,也要在这里加载;
3>接着PortalSettingsSiteSettings信息传到DesktopDefault.aspx(MobileDefault.aspx), DesktopDefault.aspx根据TabID取得当前页面的模块,再根据模块的PanelName分别显示在不同的Panel.
2.配置文件中的表,以下是表结构描述,表中的数据全部存储在一个xml文件中.
Global站点信息配置表

字段
备注
PortalId
站点ID(可架设多个门户站点而共享一个数据库,通过PortalID区分)
PortalName
站点名称
AlwaysShowEditButton
是否总是显示编辑按钮

 
Tab导航栏标签信息表

字段
备注
TabId        
标签ID
TabName
标签名称
AccessRoles
可访问该标签的角色
TabOrder
标签排序号
ShowMobile
该标签是否在移动设备浏览器上显示
MobileTabName
移动设备浏览器上显示的名称

 
Module用户模块表(显示在网站上的各个功能模块;如:快速链接,公告等)

字段
备注
ModuleId
模块ID
ModuleTitle
模块名称
EditRoles
可编辑该模块的角色
ModuleDefId
关联用户模块定义表的Id,指明该用户模块是由哪个模板实现
PaneName
标注显示在左中右哪个Panel
CacheTimeout
缓存时间
ModuleOrder
显示的顺序
ShowMobile
是否在移动设备浏览器上显示

 
ModuleDefinition用户模板定义表(设置用户模板,由那个用户控件实现,系统默认给出了十个用户模板和五个管理模板,可以在扩充)

字段
备注
ModuleDefId
模板ID
FriendlyName
模板名称
DesktopSourceFile
桌面浏览器上显示的用户控件源文件地址
MobileSourceFile
移动设备浏览器上显示的用户控件源文件地址

 
SettingsSetting当为XML/XSL模板和图片模板时设置XML/XSL文件和图片的地址。
 
3.网站中各文件的作用

文件名
说明
Admin文件夹
网站管理文件夹
   AccessDenied.aspx
访问失败(无访问权)时复位向到的页面
   EditAccessDenied.aspx
编辑失败(无编辑权)时复位向到的页面
   Logoff.aspx
注销页面;移出身份认证信息,使Cookie无效
   ManageUsers.aspx
新增和修改用户信息页面
   ModuleDefinitions.aspx
新增和修改用户模板控件页面,可在这里添加信息用户功能模板
   ModuleDefs.ascx
修改模块信息的管理功能模板
   ModuleSettings.aspx
用户模块信息设置页面
   NotImplemented.aspx
当未提供相应的链接内容时,复位向到的页面
   Register.aspx
用户注册页面
   Roles.ascx
修改角色信息的管理功能模板
   SecurityRoles.aspx
修改用户角色的页面
   SiteSettings.ascx
修改网站信息的管理功能模板
   TabLayout.aspx
修改标签名称,访问角色以及选定显示在该标签下的用户模块及显示位置。
   Tabs.ascx
修改标签信息的管理功能模板
   Users.ascx
修改用户信息的管理功能模板
Components文件夹
各模块数据返回组件文件夹
   AnnouncementsDB.cs
公共信息表的数据库访问类;包含增、删、改,获取模块中全部的及单个的公告信息(以下各用户模块的数据库访问表基本上都包含这些方法)
   Configuration.cs
配置信息相关的事务组件(6个类)
   ContactsDB.cs
联系方式信息表的数据库访问类
   DesktopControls.cs
桌面浏览器的用户控件基类;
   DiscussionDB.cs
讨论数据表的数据库访问类
   DocumentDB.cs
文档数据表的数据库访问类
   EventsDB.cs
事件信息表的数据库访问类
   HtmlTextDB.cs
HTML文本信息表的数据库访问类
   LinksDB.cs
链接信息表的数据库访问类
   MobileControls.cs
移动设备浏览器的用户控件基类;
   RolesDB.cs
角色信息表的数据库访问类
   Security.cs
包含两个类PortalSecurity(网站身份认证用到的类)和 UsersDB(网站用户的数据访问类)
Data文件夹
存放用户在建设网站中用到的图片,XML文件等
DesktopModules文件夹
存放在桌面浏览器上显示的用户控件ascxaspx
   Announcements.ascx
公告模板用户控件
   Contacts.ascx
联系方式模板用户控件
   DiscussDetails.aspx
显示讨论明细的页面
   Discussion.ascx
讨论模板用户控件
  Document.ascx
文档模板用户控件
   EditAnnouncements.aspx
编辑公告的页面
  EditContacts.aspx
编辑联系方式的页面
  EditDocs.aspx
编辑文档的页面
EditEvents.aspx
编辑事件的页面
EditHtml.aspx
编辑HTML文本的页面
EditImage.aspx
编辑图片地址的页面
EditLinks.aspx
编辑链接的页面
EditXml.aspx
编辑XML/XSL模板控件中XML/XSL文件地址的页面
Events.ascx
事件模板用户控件
HtmlModule.ascx
“HTML文本模板用户控件
ImageModule.ascx
图片模板用户控件
Links.ascx
链接模板用户控件
QuickLinks.ascx
快速链接模板用户控件
Signin.ascx
登录用户控件
ViewDocument.aspx
查看文档页面
XmlModule.ascx
“XML/XSL”模板用户控件
Docs文件夹
门户文档(发布网站时可不要)
Images文件夹
存放门户网站框架所必需的图片
MobileModules文件夹
存放在移动设备浏览器上显示的用户控件文件夹和DesktopModules中内容差不多
SourceViewer文件夹
Starter Kit 源代码浏览器用到的一些文件(发布网站时可不要)
Uploads文件夹
文档模块中上传到服务器上的文档可放在该目录下
ASPNETPortal.css
样式文件,修改它可以改变网站外观
Default.aspx
入口页,判断程序是在桌面浏览器中运行还是移动设备浏览器中运行,然后决定转到那个首页(DesktopDefault.aspx OR  MobileDefault.aspx
DesktopDefault.aspx
桌面浏览器中运行的首页
DesktopModuleTitle.ascx
桌面浏览器中模块标题控件。
DesktopPortalBanner.ascx
桌面浏览器中页面的Top部分,包含导航栏标签和当前用户信息
Global.asax
初始载入网站的配置文件。
MobileDefault.aspx
移动设备浏览器中运行的首页
MobileModuleTitle.ascx
移动设备浏览器中模块标题控件。
PortalCfg.cs
用户配置文件的数据集设置架构文件,包含对配置文件中各个数据表的属性、方法和事件定义
PortalCfg.xml
用户配置文件的XML数据
PortalCfg.xsd
用户配置文件的架构
Web.config
 

 
 
4.数据库中的表
Portal_Announcements公告信息表(在公告信息模块中用)

字段名
类型
含义
备注
ItemID
Int
链接Id
主键(自动编号)
ModuleID
Int
所属模块ID
决定该公告在哪个模块中显示(模块ID:用户配置文件PortalCfg.xml中的模块ID,以下皆同)
CreatedByUser
Nvarchar(100)
创建者
记录创建和修改该公告的用户
CreatedDate
Datetime
创建时间
记录创建和修改该公告的时间
Title
Nvarchar(100)
名称
 
MoreLink
Nvarchar(150)
更多细节的链接
 
MobileMoreLink
Nvarchar(150)
移动细节链接地址
移动设备浏览器上的更多细节链接地址
ExpireDate
Datetime
有效日期
 
Description
Nvarchar(2000)
描述
 

 
Portal_Contacts联系方式信息表(在联系方式模块中用)

字段名
类型
含义
备注
ItemID
Int
链接Id
主键(自动编号)
ModuleID
Int
所属模块ID
决定该联系方式在那个模块中显示
CreatedByUser
Nvarchar(100)
创建者
记录创建和修改该联系方式的用户
CreatedDate
Datetime
创建时间
记录创建和修改该联系方式的时间
Name
Nvarchar(50)
联系人姓名
 
Role
Nvarchar(100)
联系人角色
与系统框架中的角色不同,理解成职位更合适
Email
Nvarchar(100)
联系人Email
 
Contact1
Nvarchar(250)
联系方式1
 
Contact2
Nvarchar(250)
联系方式2
 

 
Portal_Discussion用户讨论留言信息表(用户讨论模块用)

字段名
类型
含义
备注
ItemID
Int
链接Id
主键(自动编号)
ModuleID
Int
所属模块ID
决定该讨论在那个模块中显示
Title
Nvarchar(50)
讨论标题
 
CreatedDate
Datetime
创建时间
记录创建该讨论的时间
Body
Nvarchar(100)
留言内容
 
CreatedByUser
Nvarchar(100)
创建者
记录创建和修改该讨论的用户
DisplayOrder
Nvarchar(100)
显示顺序
记录回复的讨论的时间和本身提交的时间(可用作讨论留言的排序和显示回复关系)

 
Portal_Documents用户上传文档信息表(在显示文档信息模块中用)

字段名
类型
含义
备注
ItemID
Int
链接Id
主键(自动编号)
ModuleID
Int
所属模块ID
决定该联系方式在那个模块中显示
CreatedByUser
Nvarchar(100)
创建者
记录创建和修改该联系方式的用户
CreatedDate
Datetime
创建时间
记录创建和修改该联系方式的时间
FileNameUrl
Nvarchar(250)
 
上传至服务器中的文件路径,(可由系统重新命名) 
FileFriendlyName
Nvarchar(150)
文档名称
友好的文件名称显示
Category
Nvarchar(50)
类别
 
Content
Image
内容(二进制)
上传到数据库中的内容
ContentType
Nvarchar(50)
类型
上传文件的类型
ContentSize
Int
大小
上传文件的大小

 
Portal_Events事件信息表(在显示事件信息的模块中使用)

字段名
类型
含义
备注
ItemID
Int
链接Id
主键(自动编号)
ModuleID
Int
所属模块ID
决定该事件在哪个模块中显示
CreatedByUser
Nvarchar(100)
创建者
记录创建和修改该事件的用户
CreatedDate
Datetime
创建时间
记录创建和修改该事件的时间
Title
Nvarchar(100)
事件名称
 
WhereWhen
Nvarchar(150)
发生地点
 
Description
Nvarchar(2000)
描述
 
ExpireDate
Datetime
有效日期
 

 
Portal_HtmlText静态HTML信息表(在显示静态HTML的模块中用,可用于显示新闻等文本)

字段名
类型
含义
备注
ModuleID
Int
所属模块ID
决定该静态HTML在哪个模块中显示(主键,限定一个模块只对应一个静态HTML文件)
DesktopHtml
Ntext
桌面HTML内容
 
MobileSummary
Ntext
移动摘要
移动设备浏览器上显示的摘要
MobileDetails
Ntext
移动细节
移动设备浏览器上显示的细节

 
Portal_Links链接信息表(快速链接模块和连接模块用)

字段名
类型
含义
备注
ItemID
Int
链接Id
主键(自动编号)
ModuleID
Int
所属模块ID
决定该链接在那个模块中显示
CreatedByUser
Nvarchar(100)
创建者
记录创建和修改该链接的用户
CreatedDate
Datetime
创建时间
记录创建和修改该链接的时间
Title
Nvarchar(100)
名称
 
Url
Nvarchar(250)
链接地址
 
MobileUrl
Nvarchar(250)
移动链接地址
 
ViewOrder
Int
排序号
 
Description
Nvarchar(2000)
描述
 

 
Portal_Roles角色信息表(门户网站引擎核心表)

字段名
类型
含义
备注
RoleID
Int
角色Id
主键(自动编号)
PortalID
Int
门户网址ID
可架设多个门户站点而共享一个数据库,通过PortalID区分
RoleName
Nvarchar(50)
角色名称
 

 
Portal_UserRoles用户角色关系表(门户网站引擎核心表)

字段名
类型
含义
备注
UserID
Int
用户Id
关联用户信息表(Portal_Roles
RoleID
Int
角色Id
管理角色信息表(Portal_Users

 
Portal_Users用户信息表(门户网站引擎核心表)

字段名
类型
含义
备注
UserID
Int
用户Id
主键(自动编号)
Name
Nvarchar(50)
用户姓名
 
Password
Nvarchar(50)
密码
采用MD5的加密方式存储
Email
Nvarchar(100)
用户Email
用于登录,并设置成唯一性索引(可防止注册相同的Email,这样设置后当有相同的Email插入时程序就会抛出异常,捕获这个异常就可判断Email是否重复,这样就可以省掉判断Email是否重复的代码)

 
5.数据库中的存储过程:

存储过程名称
说明
Portal_AddAnnouncement
添加新公告
Portal_AddContact
添加新联系方式
Portal_AddEvent
添加新事件
Portal_AddLink
添加新链接
Portal_AddMessage
新建一条新的讨论留言,其中@ParentID的参数为被回复留言的Id,通过该ID找到该留言的DisplayOrder,加上新增留言的时间就是新留言的DisplayOrder
Portal_AddRole
添加角色信息
Portal_AddUser
添加一个新用户,返回用户的Id
Portal_AddUserRole
添加用户角色关系
Portal_DeleteAnnouncement
删除公告信息(注:以下删除部分若无特殊说明均为删除指定ItemID的信息)
Portal_DeleteContact
删除联系方式
Portal_DeleteDocument
删除用户上传文档
Portal_DeleteEvent
删除事件信息
Portal_DeleteLink
删除链接信息
Portal_DeleteModule
当删除一个模块时,联动的删除该模块相关的全部信息
Portal_DeleteRole
删除角色信息
Portal_DeleteUser
删除用户
Portal_DeleteUserRole
删除角色用户关系
Portal_GetAnnouncements
根据ModuleID(模块ID)返回有效期内的公告信息
Portal_GetAuthRoles
根据PortalIDModuleID返回模块的可访问角色AccessRoles及可编辑角色EditRoles.不过像是没有用到该存储过程,而且该存储过程涉及的表(Portal_Modules,Portal_Tabs)在数据库中没有(在用户配置文件中有类似的表),通过这个存储过程可以继续加强对模块的权限管理.
Portal_GetContacts
根据ModuleID(模块ID)返回联系方式
Portal_GetDocumentContent
根据文档的(ItemID)获取存储在数据库中的文档信息
Portal_GetDocuments
根据ModuleID(模块ID)返回用户上传文档信息
Portal_GetEvents
根据ModuleID(模块ID)返回有效期内的事件信息
Portal_GetHtmlText
根据ModuleID(模块ID)返回静态HTML文本信息
Portal_GetLinks
根据ModuleID(模块ID)返回连接信息,并按(ViewOrder)排序号排序
Portal_GetNextMessageID
获取讨论的下一条留言
Portal_GetPortalRoles
获取指定门户站点(指定PortalID)的全部角色信息
Portal_GetPrevMessageID
获取讨论的上一条留言
Portal_GetRoleMembership
根据角色ID获取该角色对应的用户成员信息
Portal_GetRolesByUser
根据用户Email获取用户角色信息
Portal_GetSingleAnnouncement
根据公告的(ItemID),获取单个公告的信息
Portal_GetSingleContact
根据联系方式的(ItemID),获取单个联系方式的信息
Portal_GetSingleDocument
根据文档的(ItemID),获取单个文档的信息
Portal_GetSingleEvent
根据事件的(ItemID),获取单个事件的信息
Portal_GetSingleLink
根据链接的(ItemID),获取单个链接的信息
Portal_GetSingleMessage
根据留言的(ItemID),获取单个留言的信息
Portal_GetSingleRole
根据角色ID,获取单个角色的信息
Portal_GetSingleUser
根据用户Email,获取单个用户的信息
Portal_GetThreadMessages
根据父留言信息的DisplayOrder,返回按时间顺序和回复关系返回子留言信息
Portal_GetTopLevelMessages
根据ModuleID(模块ID)返回顶层留言信息
Portal_GetUsers
获取全部的用户信息,并按Email排序
Portal_UpdateAnnouncement
更新公告信息
Portal_UpdateContact
更新联系方式信息
Portal_UpdateDocument
更新文档信息,当未找到指定文档ID时添加新的文档信息
Portal_UpdateEvent
更新事件信息
Portal_UpdateHtmlText
更新静态HTML文本信息
Portal_UpdateLink
更新指定的连接信息
Portal_UpdateRole
更新角色信息
Portal_UpdateUser
更新用户信息
Portal_UserLogin
根据emailpassword返回登录的用户姓名(用于判断用户登录是否通过)

posted @ 2008-01-24 14:59  一滴海水  阅读(697)  评论(1编辑  收藏  举报