个性化与主题讲解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用复杂的属性类型
必须提供有关如何序列化该类型的信息,使个性化 配置系统可以获取属性值并将属性值设置为正确的 类型
<profile defaultProvider="AspNetSqlProfileProvider"> <properties> <add name=“FavoriteURLs” type=“System.Collection.Specialized.StringCollection” serializeAs="Xml" /> </properties> </profile>
个性化配置的使用
属性定义信息
使用标量值
使用复杂的属性类型 使用用户自定义的属性类型
使用属性组
演示和练习:使用自定义的属性类型
属性定义信息
属性 Name type 属性名称 指定属性的类型。默认为 String。可以将任 何 .NET 类指定为类型(Int32、DateTime、 StringCollection 等)。如果 .NET Framework 中没 有定义该类型,则必须确保 Web 应用程序可以访 问该类型。可以在站点的 Bin 目录中或全局程序 集缓存 (GAC) 中包含该类型编译后的程序集,也 可以将该类型的源代码放入网站的 App_Code 目 录中 指定序列化格式化程序(字符串、二进制、 XML 或提供程序特定的序列化)。默认序列化 为字符串 指定一个布尔值,该布尔值指示是否为匿名用户 托管属性。默认情况下,该属性为 false。如果希 望未经身份验证的用户使用该属性,则可以将该 属性设置为 true 说明
主题的类型
页面主题 :放在站点的App_Themes 目录下,在 本站点内使用
全局主题 :全局主题存储在 Web 服务器的名为 Themes 的全局文件夹中 ,所有Web服务器上的 站点都可以使用
定义主题和外观
只能设置那些其 ThemeableAttribute 属性 (Attribute) 设置为 true(在控件类中)的属性 (Property) 显式地指定控件行为类属性或其它不接受通过主题 设置的属性 创建主题 创建页面主题 :在站点的App_Themes 目录下创 建主题 创建全局主题 :在iisdefaultroot\aspnet_client\ system_web\version\Themes 目录下创建主题 创建外观:在设计视图中设计好控件的样式, 然后复制到.skin文件中
ASP.NET个性化配置
个性化配置的工作方式
在Web.config中配置Provider和Profile
在程序中设置和引用该值
演示和练习:使用Profile保存简单的用户信息
多媒体演示
个性化配置的用户标识
通过身份验证的用户
匿名用户
演示和练习:在Web.config中配置保存匿名用户个 人配置信息 迁移匿名个性化配置信息
自定义身份验证,对用户凭据的获取和用户标 识的设置进行手工管理
匿名用户
必须在Web.config显示配置对匿名用户的支持
可以通过Cookie保存匿名用户标识
如果不能保存Cookie,可以将匿名用户表示作为 URL的一部分
<anonymousIdentification enabled="[true | false]" cookieless="[UseUri | UseCookies | AutoDetect | UseDeviceProfile]" cookieName="" cookiePath="“ cookieProtection="[None | Validation | Encryption | All]" cookieRequireSSL="[true | false]" cookieSlidingExpiration="[true | false]" cookieTimeout="[DD.HH:MM:SS]" domain="cookie domain" />
使用属性组
可使用 group指定个性化配置属性组
<profile enabled="true"> <properties> <add name="PostalCode" /> <group name="Address"> <add name="Street" /> <add name="City" /> <add name="CountryOrRegion" /> </group> </properties> </profile>
演示和练习:在Web.config中配置保存匿名用户 个人配置信息
多媒体演示
迁移匿名个性化配置信息
当用户从匿名用户转换到被认证用户时,匿名用户 数据需要迁移过来 迁移的方法: 将触发Profile_OnMigrateAnonymous 事件,所以需 要在该事件处理迁移的动作 首先获取匿名用户个性化配置 然后删除匿名用户个性化配置信息,删除匿名 用户Cookie
在页面或配置文件中使用主题
对站点应用主题:在Web.config中将 <pages> 元素设 置为全局主题或页面主题的主题名称 对单个页应用主题:将 @ Page 指令的 Theme 或 StyleSheetTheme 属性设置为要使用的主题的名称 对控件应用外观:主题中定义的外观应用于已应用 该主题的应用程序或页中的所有控件实例 对控件应用命名外观 :设置控件的 SkinID 属性来 引用外观
需要使用不同于 .NET Framework 包含的提供程 序所使用的数据库架构来管理个性化配置信息
主题和外观
ASP.NET主题和外观概述
定义、应用主题和外观
定义主题和外观 在页面或配置文件中使用主题
演示和练习:定义 和使用ASP.NET 主题
以编程方式应用 ASP.NET 主题 演示和练习:通过Profile保存用户使用过的主题
第11章 个性化与主题
内容
个性化配置
主题和外观
个性化配置
ASP.NET个性化配置
个性化配置的用户标识
个性化配置的使用 个性化配置提供程序
ASP.NET个性化配置
个性化是指对访问站点的用户按照他们各自的要求提供相关 的服务和界面的呈现风格 。个性化应用程序需要这样的一些 功能: 必须使用唯一的用户标识符存储信息 能够在用户再次访问时识别用户,然后根据需要获取用 户信息 在ASP.NET中,可以方便地完成对个性化数据的存取和使用。 其基本原理如下: 个性化配置功能将信息与单个用户关联,并采用持久性 的格式存储这些信息 通过个性化配置,可以管理各种用户(匿名用户、 Window认证用户和Form认证用户)信息,而无需创建和维 护自己的数据库 ASP.NET会根据配置将ProfileCommon类实例化,并可在应 用程序的任何位置访问
引用方式:Profile.Address.Street
演示和练习:使用自定义的属性类型
多媒体演示
个性化配置提供程序
默认个性化配置提供程序
使用AspNetSqlProfileProvider的实例
通过运行 Aspnet_regsql.exe 命令来创建数据库 自定义个性化配置提供程序
需要在个性化配置提供程序不支持的数据源中 存储个性化配置信息
使用用户自定义的属性类型
必须支持要存储在用户个性化配置中的成员的序列 化
<profile defaultProvider="AspNetSqlProfileProvider"> <properties> <add name="MyCart" type="Samples.AspNet.Profile.ShoppingCart" serializeAs="Xml" /> </properties> </profile>
StyleSheetTheme:页面中的属性设置优先于主题 中定义的设置(如果两个位置都定义了相同属 性设置),这是级联样式表使用的模型
演示和练习:主题优先级
多媒体演示
回顾
个性化配置
主题和外观
实验
参照实验手册,并在教师指导下完成实验报告。
习题
详见本书第11章后习题部分ቤተ መጻሕፍቲ ባይዱ请学生独立完成。
主题设置的优先级
演示和练习:主题优先级
ASP.NET主题和外观概述
定义 主题是属性设置的集合,使用这些设置可以定 义页面和控件的外观,然后在某个 Web 应用程 中的所有页、整个 Web 应用程序或服务器上的 所有 Web 应用程中一致地应用此外观 外观是主题的主要构成元素之一,通过外观我 们可以对服务器控件(例如,Button、Label、 TextBox 或 Calendar 控件)进行属性和样式的设 定 主题的组成 外观 级联样式表 主题图形和其他资源
演示和练习:定义 和使用ASP.NET 主题
多媒体演示
以编程方式应用 ASP.NET 主题
以编程方式应用页面主题 :在页面的 PreInit 方法 的处理程序中,设置页面的 Theme 属性
Page.Theme = "BlueTheme"
以编程方式应用样式表主题 :重写 StyleSheetTheme 属性,然后在 get 访问器中返回样 式表主题的名称
public override String StyleSheetTheme{get{…}}
以编程方式应用控件外观 :在页面的 PreInit 方法 的处理程序中,设置控件的 SkinID 属性
演示和练习:通过Profile保存用户使用过的主题
多媒体演示
主题设置的优先级
在页面中引用主题优先于在Web配置文件中引用主 题 对于控件而言,使用默认外观的优先级低于已命名 外观 通过Theme 和StyleSheetTheme (样式表主题)两种 方式设置主题 Theme:主题和页中的控件设置将进行合并,以 构成控件的最终设置
customProviderData
使用标量值
将标量值(如字符串、数字值或 DateTime 值)存储 在个性化配置中仅需要很少的配置,即只需提供名 称和类型
<profile defaultProvider="AspNetSqlProfileProvider"> <properties> <add name="Name" /> <add name="Weight" type="System.Int32" /> <add name="Birthday" type="System.DateTime" /> </properties> </profile>
serializeAs
allowAnonymous
属性定义信息
属性 defaultValue 说明 指定属性初始化时使用的值
readOnly
provider
指定一个布尔值来指示属性是否可修改
指定特定于属性的提供程序。默认情况下,使 用为个性化配置属性指定的默认提供程序对 所有属性进行管理,但个别属性也可以使用 不同的提供程序 指定一个包含自定义信息的可选字符串,该字 符串将被传递
通过身份验证的用户
默认情况下,用户个性化配置与 System.Web.HttpContext.Current.User 属性中存储的 用户标识关联。用户标识可通过以下几方面确定: ASP.NET Forms 身份验证,在身份验证成功之后 设置用户标识
Windows 或 Passport 身份验证,在身份验证成功 之后设置用户标识
相关文档
最新文档