ASP.NET2.0的Profile

翻译|其它|编辑:郝浩|2007-08-10 11:16:24.000|阅读 1040 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

1.  Profile介绍(存储用户配置)

 

      ASP.NET 2.0 中的存储用户配置功能使您可以定义并存储要在整个应用程序中使用的基于用户的设置。而且,在用户未登录时,可以将这些设置存储在匿名配置文件中,然后在将来某个时间将其迁移到登录用户的配置文件中。

      Profile 对象与 Session 对象十分相似,但是更好用一些。与 Session 相似的地方在于,Profile 是相对于一个特定的用户的,也就是说,每个 Web 应用程序的用户都有他们自己的 profile 对象。与 Session 不同的是,Profile 对象是持久对象。如果你向 Session 中添加一个项,在你离开网站时,该项就会消失。而 Profile 则完全不同,当你修改 Profile 的状态时,修改在多个访问之间均有效。

Profile 使用 provider 模式来存储信息,默认情况下,user profile 的内容会保存在 SQL Server Express 数据库中,该数据库位于网站的 App_Data 目录。如果需要支持其他数据库,可以编写相关的 ProfileProvider 类。Profile 对象是强类型的.

    与 Session 不同,Profile 是强类型的,Session 对象仅仅是一个项集合而已,而 profile 对象则有强类型属性。
    使用强类型是有它的道理的。例如,使用强类型,你就可以在 Microsoft Visual Web Developer 中使用智能感知技术,当你键入 Profile 和一个点的时候,智能感知会弹出你已经定义过的 profile 属性列表。

 

2. 配制 ProFile

 

    默认情况下,profile 被保存在 sqlserver 2005 express 数据库,它位于 App_Data 目录中,这或许在你开发一些普通的 asp.net 应用程序时是没有问题的,但很有可能,你需要把你的应用程序的 profile 保存在另一个数据库中,比如一个完整版的 SqlServer 2005的实例中,而该数据库又位于你局域网的某个位置。
      Profile
使用 Provider 模式,通过修改 web.config machine.config 的设置来告诉系统把信息存储在哪里。
      ASP.NET
本身配了一个 profile provider,叫 SqlProfileProvider。如果你感到困惑,你可以通过继承 ProfileProvider 基类来创建一个自己的 provider。例如,你可以创建一个基于 Oracle 数据库或 MySql 数据库的 Provider。在这里,我们将只讨论最简单的方法,即通过 SqlServer 数据库来保存 profile 信息。
    要使用 Microsoft SQL Server 存储 profile 信息,必须完成两个步骤。首先,你必须安装 SQL Server 数据库,然后你必须重新设置配置文件。

    和配制缓存一样,ASP.NET 2.0一样使用 aspnet_regsql 来存储 Profile 信息的工具。具体的用法在这 里就不说了,参照上一篇文章 ASP.NET 的缓存.

    双击 aspnet_regsqlSQL Server 安装向导会指导你完成必要的步骤,完成这些步骤后,向导会自动创建用于存储 profile 信息的存储过程和表结构。

 

3. 设置 ProFile

 

    既可以在 machine.config 中,也可以在 web.config 中定义一个 user profile,由于你不能在应用程序的二级目录中创建一个包含文件 profile 节的 web.config 文件,这意味着你将无法在一个应用程序中定义两个以上的 profile。如果需要支持匿名的话则还需要配置<system.web>元素下的<anonymousIdentification>元素。
<profile

    enabled="true|false"

    inherits="fully qualified type reference"

    automaticSaveEnabled="true|false"

    defaultProvider="provider name">

    <properties>...</properties>

    <providers>...</providers>

</profile>


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:csdn

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP