用户角色管理和Login控件

 ASP.NET 2.0 Framework提供了一种可选的不同于cookieSession状态的方式存储用户信息:Profile对象。Profile对象提供强类型、可持久化的Session状态表单。

可以在应用程序的根Web配置文件定义一组Profile属性来创建ProfileASP.NET Framework在后台动态编译一个包含这些属性的类。

例如,代码清单3-19所示的Web配置文件定义了一个Profile包含了三个属性:firstNamelastNamenumverOfVisits

代码清单3-19  Web.config

 

当定义Profile属性时,可以使用下面的属性:

q name——用于指定属性名称;

q type——用户指定属性类型。类型可以是任意类型,包括定义在App_Code文件夹中的自定义组件(默认值是字符串类型);

q defaultValue——用于指定属性默认值;

q readOnly——用于创建只读属性(默认值为false);

q serializeAs——用于指定一个属性如何持久化为静态持久化数据。可能的值有BinaryProviderSpecificStringXml(默认值为ProviderSpecific);

q allowAnonymous——用于允许匿名用户读写属性(默认值为false);

q provider——用于关联属性到特定的Profile提供程序;

q customProviderData——用于传递自定义数据到Profile提供程序。

Web配置文件中定义Profile后,可以使用Profile对象修改Profile属性。例如,代码清单3-20所示的页面使用一个表单修改firstNamelastName属性的值。并且,页面在每次被请求时自动更新numberOfVisits属性

代码清单3-20  ShowProfile.aspx

注意,Profile属性被公开为强类型属性。例如,numberOfVisits属性被公开为一个整型属性,因为我们将其定义为一个整型属性。

理解Profile属性是持久化的非常重要。如果为一个用户设置Profile属性,那么就算该用户过500年也不会再返回网站,属性也会保留其值。不像Session状态,当为Profile属性赋值时,用户离开网站,值也不会消失。

Profile对象使用提供程序模型。默认的Profile提供程序是SqlProfileProvider。默认情况下,该提供程序保存Profile数据到名为ASPNETDB.mdfMicrosoft SQL Server 2005 Express数据库,保存在应用程序的App_Code文件夹。如果数据库不存在,第一次使用Profile对象时它会被自动创建。

默认情况下,不能为匿名用户保存Profile信息。ASP.NET Framework使用用户的身份认证标识关联Profile信息。对任何标准的ASP.NET Framework支持的身份验证方式,都可以使用Profile对象,包括表单身份认证和Windows身份认证(默认情况下,Windows身份验证被启用)。

注解   本节的后续部分,你将了解到如何为匿名用户保存Profile信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值