『』Portal学习总结

1. 网站实现原理 :
1> 首先自定义一个 XML 文件用于定义网站的结构 , xml 的结构由一个 DataSet 确定 , 然后再定义一个配置事务组件 Configuration.cs( 6 个类 ), 用于操作 DataSet 来读写该 xml 文件 , 从而实现网站配置的更改及管理 ;
2> 在客户端每次发送请求时 , 都会在 Global.asax 中的 Application_BeginRequest 事件中使用配置事务组件加载当前页的的配置信息 (PortalSettings), 如果网站的配置信息 (SiteSettings) 为空 , 也要在这里加载 ;
3> 接着 PortalSettings SiteSettings 信息传到 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
移动设备浏览器 上显示的用户控件源文件地址

 
Settings Setting 当为 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 文件夹
存放在 桌面浏览器 上显示的用户控件 ascx aspx
   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
根据 PortalID ModuleID 返回模块的可访问角色 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
根据 email password 返回登录的用户姓名(用于判断用户登录是否通过)

你可能感兴趣的:(Portal)