当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 如何实现ASP.NET网站个性化

ASP.NET
使用函数传递参数来执行相应的数据库操作
如何实现在窗体和窗体之间进行传递数据
ASP.NET中文显示之两种解决方法
ASP.NET、JSP及PHP之间的抉择
ASP.NET 2.0发送电子邮件中存在的问题
谈谈HtmlControl与WebControl的区别与用途
从ASP.NET 1.1升级到ASP.NET 2.0要考虑的Cookie问题
通过系统配置来提高ASP.NET应用程序的稳定性
妙用ASP2.0中的URL映射改变网址
AJAX实现web页面中级联菜单的设计
ASP.NET跨页面传值技巧总结
再议ASP.NET DataGrid控件中的“添加新行”功能
Geometry 对象浅析
重构CollapsibleSplitter
如何利用.NET Framework使用RSS feed
ASP.NET获取IP与MAC地址的方法
在ASP.NET 2.0中使用样式、主题和皮肤
ASP.NET中为GridView添加删除提示框
ASP.NET 2.0,无刷新页面新境界
看看一个.net版对话框控件

如何实现ASP.NET网站个性化


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 45 ::
收藏到网摘: n/a

如今,个性化是大多数Web应用程序的一个关键部分。TechRepublic和Amazon就是典型的例子,它们能够记住用户的某些特征。应用ASP.NET 1.x实现这一功能需要完成一些额外的工作,并要使用Session对象,但2.0版本简化了个性化过程。

个性文件

ASP.NET 2.0 Profile系统允许你轻松存储用户的相关信息。你定义与每名用户有关的属性,并将它存储在他们的个性文件中。个性文件数据可以用程序方便地访问。与其它保存文件一样,它必须被存储,且个性文件默认使用SQL Server。

Profile系统以提供程序模型为基础,特殊的Profile提供程序负责将属性值序列化和解序列化到某个数据仓库中。.NET Framework默认使用一个SqlProfileProvider类,它使用一个SQL Server数据库表来存储数据。

系统配置

在使用ASP.NET 2.0的个性文件特性之前,必须对Web服务器进行正确配置,使其支持这一特性。默认情况下,个性文件特性使用一个SQL Server终端,但你也可以建立自己的提供程序。在本文中,我主要讨论标准的SQL Server终端,它使用默认的SqlProfileProvider类。

SQL Server支持版本7.0、2000和2005。要配置一个支持SQL Server的系统,首先应配置数据库服务器,最后是ASP.NET平台。

.NET Framework 2.0中包含正确配置ASP.NET环境的工具。如果你使用了SQL Server 2005精简版和Visual Studio,就不必进行配置。如果没有应用上述程序,第一步是注册一个SQL Server连接。使用随.NET Framework安装的命令行工具Aspnet_regsql.exe即可完成此项操作。在我的机器上,此工具的路径为:

C:\Windows\Microsoft.NET\v2.0.50727\aspnet_regsql.exe

这个工具中包含大量的选项,你可以通过命令行选项(-?)详细阅读。在我的开发系统中,我使用现有的SQL Server 2000。下面的命令通过在指定服务器上建立必要的数据库来进行环境配置。

Aspnet_regsql.exe –A p –E –S database_server_name

命令行开关E告诉系统用当前用户证书进行验证。开关S允许你指定数据库服务器名称。开关A说明增加哪个选项,后面的p指明增加个性文件支持。执行此命令即可建立一个SQL Server数据库。数据库的默认名称为aspnetdb,但你也可以用命令行开关d撤销它,开关d允许你指定一个现有的数据库。

现在已建立一个SQL Server环境,接下来应对ASP.NET 2.0进行配置,使其利用连接和个性文件。进入IIS管理界面,查看ISS网站(Web Sites)属性并选择ASP.NET标签,即可激活ASP.NET环境属性。选择ASP.NET标签上的编辑配置(Edit Configuration)按钮。验证(Authentication)标签包含一个角色(Roles)区,其中的角色管理(Role Management)被激活(应查看这一点)。默认的SQL Server(LocalSqlServer)连接字符串在通用(General)标签中指定。我的开发环境使用下面的连接字符串:

data source= database_server_name;Integrated Security=SSPI;

Initial Catalog=aspnetdb;User Instance=false

将这些改变保存在ASP.NET环境中,把它连接到前面配置的SQL Server实例中。配置好平台后,你就可以开始执行。

定义元素

个性文件中使用的数据元素在web.config文件中建立与保存(即被保存的数据值在那个文件中定义)。实际值(对不同用户而言)保存在一个终端数据仓库中。你可以指定每个属性的名称、数据类型和数据序列化的方式。

属性的数据类型与.NET中的有效标准数据类型相同。序列化选项一般依赖于被存储的数据类型,但共有四个序列化选项:

ProviderSpecific:默认Profile提供程序决定如何序列化属性值。

字符串:属性值转换成一个字符串。

Xml:属性值转换成XML形式。

二进制:属性值转换成二进制形式。

在属性元素中定义的个性文件元素包含在一个个性文件元素中,它位于web.config文件的system.web部分。列表A中的web.config包括一个应用前面个性文件支持的个性文件片断。它将使用两个个性文件项目——FirstName和LastName——它们保存字符串值并允许匿名用户。

匿名用户和认证用户均可应用个性文件特性。前面的web.config文件使用个性文件元素的allowAnonymous属性,并激活应用程序匿名支持(anonymousIdentification元素),从而指定匿名支持。

使用代码

正确配置环境后,就可以方便地在你的.NET代码中应用个性文件元素。列表B中的简单C#代码使用个性文件元素来存储并显示数据值,它利用包含在System.Web命名空间中的Profile类。代码中包含在代码分离文件后的ASP.NET文件。

列表C包含定制代码的代码分离(codebehind)。第一个按钮存储个性文件域中每个文本域的值。第二个按钮从个性文件域中恢复值,并用这些值填充文本域。

个性化更加简化

个性化只是ASP.NET 2.0许多新特性中的一个。经过几个配置步骤,你就可以通过标准的web.config文件和Profile类编码,方便地为应用程序增加个性化特性。