网站专为用户的重复访问而设计.个性化允许站点记住用户身份和其他信息详细信息,并为每个用户提供个性化的环境.
ASP.NET提供个性化网站以满足特定客户端的服务品味和偏好.
ASP.NET个性化服务基于用户配置文件.用户配置文件定义了网站所需用户的信息类型.例如,姓名,年龄,地址,出生日期和电话号码.
此信息在应用程序的web.config文件中定义,ASP.NET运行时读取并使用它.此作业由个性化提供程序完成.
从用户数据获取的用户配置文件存储在ASP.NET创建的默认数据库中.您可以创建自己的数据库来存储配置文件.配置文件数据定义存储在配置文件web.config中.
让我们创建一个示例站点,我们希望我们的应用程序在记住用户详细信息,如姓名,地址,出生日期等.在< system.web>中的web.config文件中添加配置文件详细信息.元素.
<configuration> <system.web> <profile> <properties> <add name="Name" type ="String"/> <add name="Birthday" type ="System.DateTime"/> <group name="Address"> <add name="Street"/> <add name="City"/> <add name="State"/> <add name="Zipcode"/> </group> </properties> </profile> </system.web> </configuration>
在web.config文件中定义配置文件时,可以通过当前HttpContext中的Profile属性使用配置文件,也可以通过页面使用.
添加文本框以获取配置文件中定义的用户输入,并添加用于提交数据的按钮:
更新Page_load以显示个人资料信息:
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { ProfileCommon pc=this.Profile.GetProfile(Profile.UserName); if (pc != null) { this.txtname.Text = pc.Name; this.txtaddr.Text = pc.Address.Street; this.txtcity.Text = pc.Address.City; this.txtstate.Text = pc.Address.State; this.txtzip.Text = pc.Address.Zipcode; this.Calendar1.SelectedDate = pc.Birthday; } } } }
为Submit按钮编写以下处理程序,以保存用户数据进入配置文件:
protected void btnsubmit_Click(object sender, EventArgs e) { ProfileCommon pc=this.Profile.GetProfile(Profile.UserName); if (pc != null) { pc.Name = this.txtname.Text; pc.Address.Street = this.txtaddr.Text; pc.Address.City = this.txtcity.Text; pc.Address.State = this.txtstate.Text; pc.Address.Zipcode = this.txtzip.Text; pc.Birthday = this.Calendar1.SelectedDate; pc.Save(); } }
首次执行页面时,用户需要输入信息.但是,下次将自动加载用户详细信息.
除了我们使用的名称和类型属性之外,< add>还有其他属性.元件.下表说明了其中一些属性:
属性 | 描述 |
---|---|
name | 属性的名称. |
type | 默认情况下,类型为字符串但它允许任何完全限定的类名作为数据类型. |
serializeAs | 序列化此值时使用的格式. |
readOnly | 只读配置文件值无法更改,默认情况下此属性为false. |
defaultValue | 如果配置文件不存在或没有信息,则使用默认值. |
allowAnonymous | 一个布尔值,指示此属性是否可以与匿名配置文件一起使用. |
Provider | 应该用于管理此属性的配置文件提供程序. |
匿名个性化允许用户在识别自己之前对网站进行个性化设置.例如,Amazon.com允许用户在登录之前在购物车中添加项目.要启用此功能,可以将web.config文件配置为:
<anonymousIdentification enabled ="true" cookieName=".ASPXANONYMOUSUSER" cookieTimeout="120000" cookiePath="/" cookieRequiresSSL="false" cookieSlidingExpiration="true" cookieprotection="Encryption" coolieless="UseDeviceProfile"/>