一起谈.NET技术,如何实现ASP.NET网站个性化?

  个性化是大多数Web应用程序的一个关键部分。TechRepublic和Amazon就是典型的例子,它们能够记住用户的某些特征。应用ASP.NET 1.x实现这一功能需要完成一些额外的工作,并要使用Session对象,而ASP.NET2.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:WindowsMicrosoft.NETv2.0.50727aspnet_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类编码,方便地为应用程序增加个性化特性。

时间: 2024-08-02 20:31:03

一起谈.NET技术,如何实现ASP.NET网站个性化?的相关文章

一起谈.NET技术,打包Asp.Net 网站成为一个exe方便快捷的进行客户演示

在Asp时代有一个NetBox 产品可以把整个Asp网站AllInOne的打包成一个exe,在没有IIS的情况下可以单独运行这个exe来开启整个网站.在Asp.Net 下一直没有类似的产品出现,可能是IIS已经非常的强大了,不需要类似的产品了? 但是在某种场景下还是需要一个类似功能的产品的,这个产品不是用来部分替代IIS来做一个轻量级的IIS,而是用来方便快捷的进行客户展示. 例如,当完成一个网站开发后,或者部分完成开发后,想给客户展示一下,收集一下客户的反馈,一般有两种做法: 1. 自己有主机

一起谈.NET技术,走向ASP.NET架构设计——第一章:走向设计

前言:很多做开发的人都在不断的摸索着,积极的学习,试图找出一条走向架构设计的成功法则.每当有人问起我们的职业,我们也常常在说:"软件设计".有时,我就在想:"设计",这个已经被我们嚼烂了的词,到底有多少人真正懂"设计"的含义. 自动进入IT,走在开发这条路上,就一直在不断的摸索,寻找,苦思:如何能够才能成为架构师.于是在网络上不断的收集和阅读架构设计方面的书籍和资料,到处在找一些架构师的传记,文章和甚至是采访资料..... 同时一直不断的请教自己

一起谈.NET技术,[翻译]ASP.NET MVC 3 RC 发布通告

今天早上,ASP.NET组发布了ASP.NET 3 RC版(release candidate).你们可以从这里进行下载here. ASP.NET MVC 3是个很完美的发布,增加了大量的功能改进.它可以向后兼容ASP.NET MVC V1 和 V2,可以轻易的升级你现有的项目(可以阅读发布须知,根据里面的步骤去做).你还可以通过我之前发表的博客文章来学习ASP.NET MVC 3的很多功能.  今天的ASP.NET MVC 3 RC build 包含了一些附加的功能改进(除了修正了一些bug外

一起谈.NET技术,实战ASP.NET大规模网站架构:Web加速器

大规模网站瓶颈之一就是性能问题,如何让你的网站飞速运转起来,一直是架构师和开发人员苦于思考的问题.文章将针对基于ASP.NET开发的网站交互性非实时部分进行讨论. 一.WEB加速通常有如下方案: 1.基于ASP.NET技术的页面缓存 基于ASP.NET技术的页面缓存,通常有如下两种应用方式: 一.基于数据库触发(设置缓存依赖策略,当数据库中数据发生变化时,触发缓存失效;但微软提供的解决方案目前仅支持SQL Server,如果是ORACLE需要自己实现触发接口). 二.基于文件依赖的策略(可以设置

一起谈.NET技术,跟ASP.NET MVC一起使用jQuery

藉由ASP.NET MVC内置的扩展性,开发人员便可以使用第三方库,例如jQuery.在使用ASP.NET Webforms的时候,如果使用jQuery而不是ASP.NET AJAX,难度会比较大. 刚开始撰写本文的时候,ASP.NET MVC的版本是Preview 4,有些在Preview 4中使用的技术可能无法在早期版本中正常工作.Preview 4可以在CodePlex上下载. 初步配置 我不打算把它写成一篇完整的jQuery指南,只是简单给出几个跟ASP.NET MVC一起使用这款Jav

一起谈.NET技术,提高ASP.NET应用程序性能的十大方法

一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量. 如果你是用动态的SQL语句来返回多个数据集,那我建议你用存储过程来替代动态的SQL语句.是否把业务逻辑写到存储过程中,这个有点争议.但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不用在过滤数据,

一起谈.NET技术,在ASP.NET MVC3 中利用JSONP跨域登录WEB系统

在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用多个用户名和密码.这样客户就需要在多个系统之间重复登陆.每次登录都需要输入用户名和密码.最近比较流行的就是OAuth.新浪微博这个开放系统做的就很好.但OAuth并非本文讨论范畴.这里主要讨论jQuery1.5 jsonp 在Asp.net MVC3 中的应用. 本文应用场景: 假设您的开发团队欲为某集团公司开发一整套信息管理系统,目前首要开发的就是一套订单系统和一套内部OA系统.前提是这两套系统使用

一起谈.NET技术,关于ASP.NET页面打印技术的总结

B/S结构导致了Web应用程序中打印的特殊性. • 程序运行在浏览器中,打印机在本地,而文件确可能在服务器上,导致了打印控制不是很灵活. • 格式如何控制和定制等,是我们开发中可能会面对的问题. 打印文档的生成 • 1.客户端脚本方式 一般情况下,主要使用JS 可以分析源页面的内容,将欲打印的页面元素提取出来,实现打印.通过分析源文档的内容,可以生成打印目标文档. 优点:客户端独立完成打印目标文档的生成,减轻服务器负荷; 缺点:源文档的分析操作复杂,并且源文档中的打印内容要有约定. • 2.服务

一起谈.NET技术,深入ASP.NET 2.0的提供者模型(2)

      WebForums.NET提供者模型-一个早期的原型 相对于微软建议使用的提供者模型,Andy的提供者模型含有一些不足.一方面,WebForums.NET中提供了单个抽象基类,所有的API定义都聚集在这个类中.其负面作用在于,如果一个客户仅想定制系统的一小部分,例如用户信息的存储方式,那么他必须提供该系统中所有方法的实现.一种更好的方案是,为系统中的每一个逻辑实体创建一个抽象基类.例如,对于一个在线消息板应用程序来说,它可能需要一些类,如UsersProvider,ForumsPro

一起谈.NET技术,走向ASP.NET架构设计——第五章:业务层模式,原则,实践(前篇)

在上一章中,我们讲述了有关业务层分层的一些知识,下面我们就来看看,在具体的业务层的设计中,我们可以采用哪些模式可以将业务层设计的更加的灵活! 架构模式 首先我们就来看看,如何更加有效的组织业务规则. Specification Pattern(需求规格模式) 这个模式的使用方法就是:把业务规则放在业务类的外面,并且封装成为一个个返回boolean值的算法.这些一个个的业务规则的算法不仅仅便于管理和维护,并且还可以被重用,而且很方便的组织成为复杂的业务逻辑. 下面我们就来看一个以在线租DVD的公司