`
beckshanling
  • 浏览: 255736 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

Personal Web Site案例解析

    博客分类:
  • .net
阅读更多

Web站点创建新的主题

只需在App_Themes文件夹中新建一个主题文件夹,然后创建新的*.css、*.skin和图片文件,最后在Web.config文件的pages配置节中进行设置即可。创建*.css和图片文件是比较容易的,而*.skin是ASP.NET 2.0的新增文件,它该如何创建呢?实际上,创建方法很简单。首先,将服务器控件添加到.aspx页面中,然后,利用Visual Studio 2005的属性窗口及可视化设计功能对控件进行配置,这样控件就具有了所需外观,最后,再将控件代码复制到皮肤文件中并做适当修改即可。另外,千万不可忘记移除皮肤文件中控件的ID属性。通过以上设置,就可以轻松创建控件的默认皮肤。如果还添加了SkinID设置,那么创建的则是命名皮肤。

Handler.ashx

*.ashx文件用于创建自定义HTTP处理程序,常用于生成动态图片和动态文本的实现过程。如上代码所示,Handler类实现了 IHttpHandler接口,这表示此次创建的是一个自定义同步HTTP处理程序,其中具体实现了IHttpHanlder接口声明的 IsReusable属性和ProcessRequest方法。IsReusable属性用于获取一个值,该值指示其他请求是否可以使用 IHttpHandler实例。ProcessRequest方法用于实现具体的自定义HTTP处理请求过程。

以不同角色登录,出现的菜单项不同

当管理员用户登录站点时,母版页Default.master中Menu控件将显示一个"管理"链接。如果以匿名用户或者具有Friends角色的用户登录时,那么Menu控件将不显示 "管理"链接。这种功能是如何实现的呢?难道还需要自定义实现Menu控件的数据加载过程吗?实际上,实现这种功能很简单,只需在Web.config文件中进行一些配置即可。主要有以下3个步骤:(1)使用roleManager配置节启用角色管理功能;(2)使用siteMap配置节设置应用程序站点地图提供程序;(3)使用location配置节设置Admin文件夹的具体授权内容。以上3项设置内容都与动态显示"管理"项有着密切关系。由于Admin文件夹中包括的文件都涉及站点管理功能,因此,只有Administrators角色用户才有权限访问该文件夹。实现这一需求,需要设置内容(1)和内容(3)。这样,对于Admin文件夹的访问就与角色之间建立了紧密联系。例如,当非授权用户通过SiteMapDataSource控件获取站点地图数据时,由于涉及访问Admin文件夹的信息,因此,存在一个节点筛选的问题。即 SiteMapDataSource控件不应获取与Admin文件夹相关的节点数据。如果用户已被授权,则不存在这个节点筛选过程。实现这一功能,必须设置内容(2)。通过代码可知,应用程序的默认站点地图提供程序被设置为System.Web.XmlSiteMapProvider。需要注意的是其中设置的securtyTrimmingEnabled = "true" 属性,这是一个非常关键的设置。

ObjectDataSource控件

设置了ObjectDataSource控件的多个属性。这些属性的值与数据访问类之间有着密切关系。例如,数据访问类PhotoManager的类名被设置为TypeName属性值;用于获取相册数据的方法名GetAlbums被设置为SelectMethod属性值;用于添加相册数据的方法名 AddAlbum被设置为InsertMethod属性值;用于删除数据的方法名RemoveAlbum被设置为DeleteMethod属性值;用于更新相册数据的方法名EditAlbum被设置为UpdateMethod属性值。另外,在ObjectDataSource控件声明代码中还可以设置 CRUD方法的输入参数,这是通过设置SelectParameters、InsertParameters、UpdateParameters和 DeleteParameters属性值来完成的。需要注意的是,参数属性值的设置必须与方法中参数的类型和名称相同,否则将出现异常。
ObjectDataSource控件在应用程序运行过程中,将负责数据访问类的实例化、方法调用等工作。同时,它还负责完成数据访问类的输入,即方法参数值的获取和应用,以及数据访问类的输出,即方法返回值的管理。在这种运行机制下,数据访问类的输出,尤其是SelectMethod属性值所指示的方法 (GetAlbums)的输出,其输出类型必须是IEnumerable、DataTable、DataSet、Collection和Array等,这样由方法所获取的数据才能够通过数据绑定控件显示出来。
数据显示,实现方法非常简单。与其他数据源控件显示数据的实现方法相同,数据绑定控件的DataSourceID属性值将被设置为 ObjectDataSource控件的ID。这样通过ObjectDataSource控件从数据访问层获取的数据就被绑定到了数据绑定控件,而具体数据显示格式等设置是由数据绑定控件实现的。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics