个性化用户配置
一、简介
为用户提供自定义的外观、内容、布局,当用户再次访问的时候,用户还能看到自己原来的设定。
二、个性化的三大步骤
1. 识别用户身份
要建立验证用户身份的机制
创建识别用户需求的机制
创建管理用户的机制
2. 提供个性化服务
针对注册和匿名用户提供不同的服务
3. 存贮用户信息
可以保存用户的相关信息,以方便下次使用,包括用户的登陆信息
三、实现个性化服务的三大功能
1. 个性化用户配置
2. web部件
3. 成员和角色管理
四、为匿名用户进行个性化设置
web.config配置
<anonymousidentification enabled="true"/>
<profile>
<properties>
<add name="name" allowanonymous="true" />
<add name="lastsubmit" type="system.datetime" allowanonymous="true"/>
<group name="address">
<add name="city" allowanonymous="true"/>
<add name="postalcode" allowanonymous="true"/>
</group>
</properties>
</profile>
代码:
protected void page_load(object sender, eventargs e)
{
if (!page.ispostback)
{
//显示用户配置信息
displayprofileinfo();
}
}
protected void btnsubmit_click(object sender, eventargs e)
{
//保存用户配置信息到profile属性中
profile.name = txtname.text;
profile.address.city = txtcity.text;
profile.address.postalcode = txtpostalcode.text;
profile.lastsubmit = datetime.now;
//显示用户配置信息
displayprofileinfo();
}
private void displayprofileinfo()
{
//从profile属性中获取数据并赋值给服务器控件
txtname.text = profile.name;
txtcity.text = profile.address.city;
txtpostalcode.text = profile.address.postalcode;
datetime time = profile.lastsubmit;
//如果未获取值则显示空,否则显示获取的值
if (time.year == 1)
{
lablastsubmit.text = "空";
}
else
{
lablastsubmit.text = time.tostring();
}
}
五、为注册用户实现个性化用户配置
web.config配置
<connectionstrings>
<add name="northwindconnectionstring" connectionstring="data source=localhost;initial catalog=northwind;integrated security=true"
providername="system.data.sqlclient" />
</connectionstrings>
<system.web>
<profile>
<properties>
<add name="shoppingcart" type="shoppingcart" serializeas="binary"/>
</properties>
</profile>
<authorization>
<deny users="?"/>
</authorization>
<authentication mode="forms">
<forms loginurl ="login.aspx"></forms>
</authentication>
代码示例:code 13-2
六、匿名用户转化为注册用户的处理
global.asax中的设置
void profile_migrateanonymous(object sender, profilemigrateeventargs pe)
{
//获取匿名用户的profile对象
profilecommon anonprofile = profile.getprofile(pe.anonymousid);
//如果总价为不为0(说明匿名用户进行了选择),则将匿名用户的profile存储起来
if (anonprofile.shoppingcart.total != 0)
{
profile.shoppingcart = anonprofile.shoppingcart;
}
//删除匿名用户的用户数据(从aspnet_users表)
membership.deleteuser(pe.anonymousid);
//删除匿名用户的profle数据(从aspnet_profile表)
profilemanager.deleteprofile(pe.anonymousid);
//删除匿名用户标识
anonymousidentificationmodule.clearanonymousidentifier();
}
示例代码:code 13-3
七、删除个性化信息
删除匿名用户的个性化信息
profilemanager.deleteprofile(context.request.anonymousid)
删除注册用户的个性化信息
profilemanager.deleteprofile(user.identity.name)
新闻热点
疑难解答
图片精选