我在根目录下新建一个母版页,使用默认名“MasterPage”。页面内容分为两大p逻辑区域:top与container。Top元素中放置本系统的标题与面包屑导航。Container是装载页面内容的区域,它下面又有两大部分:content与sidebar。Content元素中放置呈现子页面内容的占位控件ContentPlaceHolder,sidebar中主要放置了Menu导航控件。此外在content元素之后,我还安排了一个用于显示图片的区域,可以在每个页面的正文内容之后展示一个与系统主题相适应的Android机器人图案,为网站增添些许活力。在母版页的Head元素下,我链接了全局样式表文件global.css,在该文件中我可以随时定义和调整全站通用的样式。
4.2.2. 实现站点导航
1) 定义站点地图
在使用ASP.NET的导航系统时,首先要为应用程序建立站点地图。我创建了默认名为Web.sitemap的站点地图文件,它实质上是一个XML文档,根节点为siteMap,然后是一个所有siteMapNode元素的祖先节点,它的地址为系统首页。在这个节点下可以定义一系列可嵌套的siteMapNode节点,我将系统的各个页面的标题与地址信息定义在其中。
2) 顶栏中的面包屑导航
“面包屑导航”可以根据站点地图文件中的节点信息显示用户当前的位置并允许用户使用链接回到更高的层级。使用面包屑导航十分容易,我简单地在母版页的顶栏区域中添加SiteMapPath控件便实现了这一功能,它可以直接读取站点地图文件中的信息而无需提供数据源控件。
3) 侧边栏中的目录菜单
目录菜单是为用户展示站点中可访问的页面的最有力的工具,我使用导航控件中的Menu控件实现这一功能。使用Menu控件时需要提供站点地图数据源控件以从Web.sitemap中读取站点地图信息。我将这两个控件放置在侧边栏区域中,通过SiteMapDataSource控件的ShowStartingNode属性隐藏顶级siteMapNode节点以美化显示效果,通过 Menu控件的MaximumDynamicDisplayLevels属性将目录的呈现级数限制在第一级。
4.2.3. 使用ASP.NET安全框架
安全是WEB应用程序的重要组成部分,本系统总共涉及五类不同的用户角色,因此在开发伊始就应考虑如何控制不同用户的访问与操作权限,这是本系统前期工作的重中之重。ASP.NET提供了一个内置的安全框架,它包括用户验证和用户授权的类,同时也提供了在应用程序中处理已验证用户的类。它还有一组管理用户和角色的高级模型,允许编程或使用内置的管理工具来进行管理。
1) 配置表单验证
在程序中使用表单验证首先要在web.config文件中进行相关的配置。
下面是我在web.config文件的<authentication / >配置节启用并配置表单验证的代码。当用户没有访问当前页面的权限时,将被送到Login.aspx页面。
<authentication mode="Forms">
<forms name="MyApp" loginUrl="~/Login.aspx" protection="All"
timeout="30" path="/" requireSSL="false"
slidingExpiration="true" cookieless="AutoDetect" />
</authentication>
2) 将安全框架的数据库对象注册到SQL Server Express中
默认情况下,ASP.NET安全框架用以保存成员资格、角色管理、配置文件等信息的数据表是存储在App_Data文件夹中的SQL Server精简版数据库ASPNETDB.mdf中的。但是为了更好地将安全框架中的用户信息与我自行创建的数据表配合使用,我需要把这些对象注册到本系统位于SQL Server Express中的数据库CRMDB之中。方法是通过“Visual Studio 命令提示行”运行“aspnet_regsql”命令,借助“ASP.NET SQL Server安装向导”自动添加这些数库表。 基于ASP.NET的客户关系管理系统的设计与实现(10):http://www.751com.cn/jisuanji/lunwen_2160.html