ASP.NET 3.5核心编程学习笔记(9):用户配置文件

ASP.NET Core vs ASP.NET:8大核心差异揭秘!谁才是Web开发的未来霸主? ASP.NET Core与ASP.NET的8大核心差异,从架构到性能,从工具到生态,全面剖析这场“跨代战争”的胜负手!ASP.NET:ASP.NET Core:对比总结:ASP.NET:ASP.NET Core:对比总结:ASP.NET:ASP.NET Core:对比总结:ASP.NET:ASP.NET Core:对比总结:ASP.NET:ASP.NET Core:对比总结:ASP.NET:ASP.NET Core:对比总结:ASP.NET:ASP.NET Core:对比总结:ASP.NET:ASP.NET 阅读详情

用户配置文件简介

  在最抽象的层面,用户配置文件是一种由ASP.NET运行库组织到动态生成类中的属性集合。配置文件数据会按不同的用户分别保存。当程序运行页面被显示时,ASP.NET会动态创建配置文件对象,它包含开发者定义在数据模型中的相应类型的属性。该对象之后被添加到HttpContext对象中,可通过Profile属性获取。

数据模型的定义

  为使用ASP.NET配置文件,我们需要先确定所要使用的数据模型结构,然后将该数据模型通过配置文件附在页面中。用户配置文件的布局定义在web.config文件中。

  示例代码:

<system.web> ...... <profile> <properties> <add name="BackColor" type="string" /> <add name="ForeColor" type="string" /> </properties> </profile> </system.web>

  所有通过<add>标签添加的属性会变为动态创建类的成员。

  配置文件中的用户配置会被自动生成一个类,如下所示:

namespace ASP { public class ProfileCommon : ProfileBase { public virtual string BackColor { get { (string)GetPropertyValue("BackColor"); } set { SetPropertyValue("BackColor", value); } } public virtual string ForeColor { get{ (string)GetPropertyValue("ForeColor"); } set{ SetPropertyValue("ForeColor", value); } } public virtual ProfileCommon GetProfile(string username) { object o = ProfileBase.Create(username); return (ProfileCommon)o; } ...... } }

  该类的实例会自动与Page类的Profile属性相关联,我们可通过Profile.BackColor这类语法来访问用户配置文件的属性。

集合类型的使用

  在上例中,我们使用的是单一的标量值,然后用户配置文件支持更高级的功能--集合类型和自定义类型。先看一下集合类型:

<properties> <add name="Links" type="System.Collections.Specialized.StringCollection" /> </properties>

  非标量值必须按存储介质的要求进行序列化。serializeAs属性就是用于指示如何进行序列化的。该属性可取的值有String、Xml、Binary、ProviderSpecific。如果该属性值未被指定,默认类型为String。

自定义类型的使用

  只要自定义类型为可序列化类型,就能被用户配置文件所使用。我们可自己设计类,将其编译为程序集,然后将程序集名称添加到配置文件属性的类型信息中:

<properties> <add name="ShoopingCart" type="My.Namespace.DataContainer, MyAssembly" /> </properties>

属性的分组

  <properties>区段可接受<group>元素,它允许我们对之间相关的属性进行组织。

  示例代码:

<properties>
...... <group name="Font">
<addd name="Name" type="string" defaultValue="verdana" />
        <addd name="SizeInPoints" type="int" defaultValue="8" /> </group> </properties>

与页面的交互

  为启用或禁用用户配置文件功能,我们只需设置web.config文件<profile>元素的enabled属性。如果该值为false,则页面不能使用Profile属性。

匿名用户的处理

  虽然用户配置文件功能主要是为被验证用户设计的,但也能够存储匿名用户的配置文件数据。要启用匿名用户,首先要开启anonymousIdentification功能。

  示例代码:

<system.web> ......
  <anonymousIdentification enabled="true" /> <profile> <properties> <add name="BackColor" type="string" allowAnonymous="true" /> <add name="ForeColor" type="string" /> </properties> </profile> </system.web>

  上述示例使匿名用户可设置背景颜色但不能设置前景颜色。

用户配置文件属性的访问

  在请求被处理前,ASP.NET会根据web.config文件中定义的用户配置文件信息动态创建一个类,页面的Profile属性会被设置为该类的实例。

个性化相关事件

  请求进入处理周期之前,个性化数据会被添加到某请求的HTTP上下文中,但哪个系统组件负责个性化数据的加载呢?为此,ASP.NET引入了一种新的模块ProfileModule。

  该模块本身有一对事件,分别在请求被谁后和请求即将结束时引发。如果个性化功能被关闭,该模块会立即返回,否则它会向应用程序引发Personalize事件,并加载当前用户配置文件中的个性化数据。在Personalize事件被引发时,个性化数据尚未加载。由HTTP模块引发的事件处理程序必须编写在global.asax中。

void Profile_Personalize(object sender, ProfileEventArgs e) { ProfileCommon profile = null //如果当前用户为匿名用户,退出 if(User == null) return; //管理员用户 if(User.IsInRole("Administrators")) profile = (ProfileCommon)ProfileBase.Create("Administrator"); else profile = (ProfileCommon)ProfileBase.Create("User"); if(profile != null) e.Profile = profile; }

匿名用户数据的迁移

  通过分配给匿名用户唯一的ID,匿名用户也能存储和获取配置信息。但如果在某一时刻,该匿名用户决定在网站中创建一个帐户,就需要将其作为匿名用户时设置的配置信息迁移到新帐户上。

  当用户以匿名身份转而登录实名帐户时,个性化模块会引发MigrateAnonymous事件。合理处理该全局事件,能将匿名用户的设置导入已验证用户的配置文件中。

  示例代码:

void Profile_MigrateAnonymous(object sender, ProfileMigrateEventArgs e) { //获取匿名用户配置文件 ProfileCommon anonProfile; anonProfile = Profile.GetProfile(e.AnonymousId); //迁移匿名用户配置文件到实名用户帐户上 Profile.BackColor = anonProfile.BackColor; ...... }

用户配置文件提供程序

  用户配置文件由两部分构成:访问层和存储层。

  访问层提供了一个强类型模型,用于获取和设置属性值,还可以对用户身份进行管理。它会确保获取和存储的数据针对的是当前已登录的用户。

  存储导使用特殊的提供程序来执行与存取数据有关的任务。

用户配置文件提供程序的配置

  默认的提供程序由web.config文件描述相应功能区段的defaultProvider属性指定。默认情况下,如果未指定提供程序,将默认使用特定功能提供程序集合中的第一项。

  默认配置文件提供程序名为AspNetSqlProfileProvider,使用SQL Server 2005 Express作为数据存储。如下所示:

<profile> <providers> <add name="AspNetSqlProfileProvider" ConnectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Profile.SqlProfileProvider" /> </providers> </profile>

  上述代码摘自machine.config文件。这里的LocalSqlServer不是到本地或远程SQL Server实例的连接字串,而是配置文件<connectionStrings>区段中的数据项名称。

自定义的用户配置文件提供程序

  我们可以编写自定义的用户配置文件提供程序,但自定义的用户配置文件提供程序类应继承于ProfileProvider类。

ASP.NET Web API .NET 5 入门 如今,由于众多优势,大多数应用程序都是使用 Web API 开发的。Web API 为开发人员或集成工程师提供了在各种应用程序之间进行通信的选项。Web API 减少了依赖关系,并减少了应用程序之间的耦合。 Web API 不是技术而是概念,可以使用任何技术(如 .Net、Java、Node js、PHP 等)构建。不需要了解 Web API 的后端技术,并且可以轻松实现它,从而打开了广泛的用途和概念。 在本文中,我们将详细探讨 Web API,它是什么以及如何在 ASP.Net 中开发 Web API,. 阅读详情

相关推荐

全面掌握ASP.NET 3.5开发的实用教程

本文还有配套的精品资源,点击获取 简介:本书详细介绍了ASP.NET 3.5技术,包括核心概念、开发工具、编程语言和实际应用技巧。内容涵盖.NET Framework 3.5基础、LINQ语言特性、Web Forms和MVC开发模式、ADO.NET Entity Framework ORM框架、控件体系、AJAX支持,以及Visual Studio 2008和IIS服务器的...

weixin_33481022的博客 552

.NET 3.5 的machine config 文件在哪里?

Machine Config文件的默认位置是%windir%\Microsoft.NET\Framework\framework_version\CONFIG. 如果你打开.NET 3.5 的文件夹, 你会发现并没有Machine.config文件.   为什么呢? .net 3.5只是.net 2.0上面的一层. 要让.net 3.5运行, .net 2.0是必须

TCZN_Jack的专栏 2139

精通ASP.NET MVC 5高级编程

Razor视图引擎的语法是ASP.NET MVC的一大特色,它与ASPX标记语言相比,显得更为简洁。Razor语法使用符号来标识服务器端代码,这种设计可以让开发者在编写视图时更加直观地识别代码和标记之间的界限。服务器端代码块被包裹在@{}中,而单独的Razor语句则以开始。示例代码块展示了如何在Razor视图中嵌入C#代码:@{var title = "Razor视图引擎简介";var description = "掌握Razor语法是构建动态Web页面的基础。

weixin_42126677的博客 713

Web网络编程第一次试验:ASP.NET4.5标准控件和窗体验证

Web网络编程第一次试验:ASP.NET4.5标准控件和窗体验证前言一、实验目的二、实验环境三、实验内容四、代码及截图五、实验总结 前言 为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至优快云中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正! 一、实验目的 1.理解ASP.NET 页面事件处理流程; 2.掌握ASP.NET 标准控件的应用; 3.理解客户端和服务器端验证; 4.掌握ASP.NET各验证控件的使用。 二、实验环境 Visual Studio

sjx3161的博客 3940

PetShop全版本演进详解:ASP.NET技术学习实践指南

本文还有配套的精品资源,点击获取 简介:PetShop作为微软发布的ASP.NET示例应用,展示了ASP.NET从1.1到3.5的演变过程。本项目包含了从2.0到5.0的所有版本,为学习者提供了深入了解和实践ASP.NET演进的宝贵资源。每个版本的PetShop都具有其技术特点,包括Web Forms、ADO.NET、Entity Framework、ASP.NET AJA...

weixin_42143092的博客 1225

校友录系统设计与实现:使用ASP.NET 3.5框架

校友录系统旨在为学校毕业生提供一个在线互动平台,用于重拾联系、分享生活和职业成就。该系统将促进校友之间的网络构建,并为学校提供与校友保持联系的有力工具。开发这样的系统不仅能够加强校友之间的联系,还能在必要时吸引校友资源和捐赠。开发者还可以创建自定义服务器控件,并为这些控件编写事件处理程序。以下是一个简单的自定义事件示例:= null)在这个例子中,控件有一个事件。开发者可以为这个事件添加事件处理程序,并在方法中触发它。

weixin_42466857的博客 812

ASP.NET MVC5 高级编程附源码:深入学习.NET Web开发的最佳指南

ASP.NET MVC5 高级编程附源码:深入学习.NET Web开发的最佳指南 【下载地址】资源介绍ASP.NETMVC5高级编程附源码.rar 《ASP.NET MVC5高级编程》是.NET开发领域的经典之作,全面深入讲解MVC 5框架,帮助开发者快速构建复杂、数据驱动的动态网站。本书详细解析MVC框架的核心概念,如...

gitblog_06700的博客 787

ASP.NET 3.5高级编程第五版配套代码实战解析

今天我们深入探讨了ASP.NET 3.5和C# 3.0的核心机制,从页面生命周期到状态管理,从LINQ语法糖到底层执行模型。这些技术虽已不再主流,但它们所蕴含的设计思想至今仍在发光发热。比如:声明式编程(LINQ)已成为现代语言标配;组件化模板(Master Pages)启发了Vue/React的布局系统;局部刷新(UpdatePanel/PageMethods)预演了SPA的雏形。

weixin_36431145的博客 614

面向 Asp.NET 开发者的 HTML5 编程教程(一)

欢迎来到 HTML5 的精彩世界!如果你是一名 ASP.NET 开发者,想用 HTML5 特性增强你的 ASP.NET 应用,那你就选对了书。与它的后继者相比,HTML5 提供了更加丰富和复杂的特性。HTML5 不仅仅是关于额外的标记标签——它是关于可以使用客户端脚本编程的 API。一方面,HTML5 简化了以前不可能的任务;但与此同时,它要求对 HTML5 的特性以及将这些特性集成到应用中的方法有一个详细的了解。

龙哥盟 1535

修改注册表导致开机时电脑显示“无法登陆到你的账户”的问题解决方案

1.问题描述:开机电脑显示“无法登陆到你的账户:通常可以通过从你的账户注销,然后重新登陆来解决问题,如果不立即注销,你创建的任何文件或进行的任何更改都将会丢失。” 2.问题原因:想要修改cmd中的用户名(红色部分),修改了注册表,重启时出现问题。 3.问题解决: win+R输入cmd,确定进入注册表界面,将下面的地址复制进地址栏(你也可以自己按目录查找),双击ProfileImage...

qq_33835957的博客 7万+

自动驾驶仿真:Carsim、NI和VTD联合仿真课题二

文章目录前言一、设备配置1、硬件需求2、网络配置二、Carsim工程配置1、创建工程2、创建数据库3、参数配置三、VTD工程配置1、创建工程四、Veristand工程配置1、创建工程五、运行程序 前言 上篇文章《Carsim、NI和VTD联合仿真课题一》简单地介绍了三者之间的联合框架,以及NI与VTD之间简单的组包与拆包指导。这篇文章将要讲述的是如何将三个软件联合起来,如何设置软件参数,用最简单的方法把仿真车开起来。 一、设备配置 1、硬件需求 注:真正的做智能驾驶仿真项目,至少需要两台电脑,一台实时机

zataji的博客 1万+

Windows Server 2025 使用 IIS 搭建 ASP.NET 3.5 网站

异常详细信息: System.Security.SecurityException: 请求“System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败。打开服务器管理器,选择“添加角色和功能”,依次点击下一步进直到入“功能”,勾选 .NET Framework 3.5 功能,点击安装。说明: 应用程序试图执行安全策略不允许的操作。

少湖说 2417

QtNodeEditor实战:构建高效可视化编程环境的完整指南

本文是QtNodeEditor实战的完整指南,详细介绍了如何利用这一基于Qt框架的可视化编程工具构建高效节点编辑器。内容涵盖从快速集成、自定义节点模型到深入理解MVC数据流架构,并提供了样式定制、场景序列化、动态端口等高级功能的实现方法,帮助开发者快速搭建灵活、可维护的可视化编程环境。

lemon的博客 702

ASP.NET 3.5核心编程学习笔记:AJAX Web Service的调用

<br />  AJAX模型基於兩個層次--客戶端應用程序層和服務器應用程序層。在這種模型下,客戶端層向服務器層發送請求,而服務器層向客戶端層返迴響應。服務器端點通過URL標識,並通過源(feed)(通常為JSON[JavaScript Object Notation]數據流)向客戶端暴露數據。服務器層只是一個接收調用並將其轉發給應用程序業務邏輯層的外觀。下圖描繪了整個模型:<br /><br />  為使ASP.NET AJAX頁面能夠調用遠程服務,該服務必須滿足幾點要求,其中最關鍵的一點與端點和底層平台

ruiqi317的专栏 718

二维卡尔曼滤波位置,速度融合

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

Johnlee2019的博客 8451

告别TwinCAT:手把手教你用IgH EtherCAT Master在LinuxCNC上搭建实时运动控制平台

本文详细介绍了如何利用IgH EtherCAT Master和LinuxCNC搭建开源实时运动控制平台,替代商业软件TwinCAT。通过分步指南,包括实时Linux环境配置、EtherCAT主站安装、LinuxCNC集成及多轴同步控制实现,帮助开发者构建高性能、低成本的工业自动化解决方案。

weixin_42641741的博客 401

C#9 和 .NET5 高级教程(一)

原文:Pro C# 9 with .NET 5 协议:CC BY-NC-SA 4.0 一、C# 和 .NET(Core)5 简介 微软的。NET 平台和 C# 编程语言大约在 2002 年正式引入,并迅速成为现代软件开发的中流砥柱。的。NET 平台使得大量的编程语言(包括 C#、VB.NET 和 F#)能够相互交互。用 C# 写的程序可以被用 VB.NET 写的另一个程序引用。本章稍后将详细介绍这种互操作性。 2016 年,微软正式推出。NET 核心。比如。网,。NET Core 允许语言之间的互操作(

龙哥盟 2339

PPF函数可视化生产可能性边界线(R语言)

假设产品A的生产函数为A = 2 * R1 + R2,产品B的生产函数为B = R1 + 2 * R2,其中A和B分别表示产品A和产品B的产量,R1和R2表示资源1和资源2的分配数量。首先,让我们定义两种产品:产品A和产品B,它们的生产分别需要不同的资源和技术。现在我们已经计算了每种分配比例下的产品A和产品B的产量,接下来我们可以绘制生产可能性边界线。运行完整的代码后,我们将得到一个图形,显示了生产可能性边界线,该线代表经济体在给定资源和技术条件下所能生产的所有产品组合。

2301_79326559的博客 874

《ASP.NET MVC 5 高级编程》 - 学习笔记

《ASP.NET MVC 5 高级编程》 ========== ========== ========== [作者] (美) Jon Galloway (美) Brad Wilson (美) K. Scott Allen (美) David Matson [译者] (中) 孙远帅 [出版] 清华大学出版社 [版次] 2015年02月 第1版 [印次] 2015年02月 第1次 印刷 [定价] 5...

GATTACA2011 535

SolidWorks速成教程P1——简介及基础操作

SolidWorks教程P1——简介及基础操作

嵌入式阿齐Archie 2万+

电机控制基础,小白入门篇

电机,这个藏在风扇、电动车、机器人里的“动力心脏”,如何精准控制它的转速、方向甚至力量?这篇博客专为完全零基础的小白打造,用“说人话”的方式拆解电机控制的底层逻辑,帮你从“看不懂电路图”到“能调个简单电机”。 电机控制不是“大神专属”,只要掌握“电生磁、磁生力”的底层逻辑,加上动手实践,小白也能快速入门。这篇博客会陪你从“看电机转”到“让电机听话”,把复杂的控制原理变成能上手玩的“小实验”。准备好你的面包板和电机,我们一起开启“电控之旅”吧!

汽车电子软件领域知识分享 5605

探索ASP.NET MVC 5的深度与广度:Pro ASP.NET MVC 5项目推荐

探索ASP.NET MVC 5的深度与广度:Pro ASP.NET MVC 5项目推荐 项目介绍 Pro ASP.NET MVC 5 是一个由Apress出版的权威书籍《Pro ASP.NET MVC 5》的配套源代码仓库。该书由资深开发者Adam Freeman编写,旨在为开发者提供深入理解和掌握ASP.NET MVC 5框架的全面指南。通过这个开源项目,读者不仅可以获取到书中所有示例代码,还能...

gitblog_00586的博客 824

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

《ASP.NET MVC 5 编程实战》 - 学习笔记

《ASP.NET MVC 5 编程实战》 ========== ========== ========== [作者] (美) Dino Esposito [译者] (中) 潘丽臣 [出版] 清华大学出版社 [版次] 2015年03月 第1版 [印次] 2015年03月 第1次 印刷 [定价] 59.80元 ========== ========== ========== 【前言】 Web Forms 的最常见应用场景是,你要开发专注于呈现数据并使用第三方控件套装的应用程序。 ASP.NET MVC.

GATTACA2011 540

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

终于弄明白Framework 3.5为什么在IIS的ASP.NET选项找不到?

本人现在正在研究VS2008,发现VS2008带的Framework 3.5,于是我去IIS ASP.NET里面看看是不是有那个选项.发现没有.于是乎就想到这是脚本没有映射.用以前注册Framework 2.0的方法,发现找不到aspnet_regiis.exe注册了.上V3.5里面发现最有可能的是一个叫VFServers.exe还差不多.用命令重新注册还是不行.我看见 添加删除程

一根葱BLOG 5493

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别。哦我的上帝啊!这可真糟糕

微软的命名很糟糕。技术上有两个框架:ASP.NET和ASP.NET Core,它们分别基于.NET Framework和.NET Core构建。 当Microsoft首次尝试创建一个遵循MVC模式的“现代”Web应用程序平台时,它将这个新平台称为“ASP.NET MVC”,以区别于以前的ASP.NET应用程序(主要是Web Forms)。然后,为了更加混淆事情,他们后来添加了“ASP.NET We...

菜鸟变凤凰 2450
上一篇: ASP.NET 2.0 个性化用户配置
下一篇: petshop4.0 Profile
mywebstudy
博客等级 码龄15年 30粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值