温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)

ARMv8/v9 Generic Timer虚拟化架构深度解析:从硬件机制到KVM实践 操作系统的时间基准依赖硬件定时器,在ARMv8/v9架构中,Generic Timer是内核时钟、高精度定时器与用户态时间服务的共同基石。虚拟化场景下,多个虚拟机共享同一物理计数器,如何通过虚拟偏移和虚拟定时器为每个客户机提供独立、可控的时间线,成为Hypervisor设计的关键。KVM/arm64利用CNTVOFF_EL2等硬件机制实现高效的时间虚拟化,避免频繁陷入EL2,同时解决时钟漂移、热迁移状态同步等工程问题。该机制在云计算、嵌入式虚拟化、NFV实时业务等领域广泛落地。本文围绕ARMv8/v9 Ge 阅读详情
[索引页]
[源码下载]



温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)


作者: webabcd


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


关键
1、配置<system.web>元素下的<profile>元素;如果需要支持匿名的话则还需要配置<system.web>元素下的<anonymousIdentification>元素。示例如下,仅为说明
     < profile  enabled ="true"  defaultProvider ="SqlProfileProvider"  inherits ="CustomProfile" >
      
< providers >
        
< add  name ="SqlProfileProvider"  type ="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
             connectionStringName
="SqlConnectionString"
             applicationName
="/"   />
      
</ providers >
      
< properties >
        
< add  name ="Name"   />
        
< add  name ="Color"  type ="System.Drawing.Color"   />
        
< group  name ="Group" >
          
< add  name ="Collection"  type ="System.Collections.ArrayList"   />
          
< add  name ="Price"  type ="int"  defaultValue ="100"   />
        
</ group >
      
</ properties >
    
</ profile >

    
< anonymousIdentification
      
enabled ="true"
      cookieName
=".VS2005_ANONYMOUS"
      cookieTimeout
="1440"
      cookiePath
="/"
      cookieRequireSSL
="false"
      cookieSlidingExpiration
="true"
      cookieProtection
="All"
      cookieless
="UseCookies"   />

各属性详细说明参看MSDN,索引处查找“profile 元素”和“anonymousIdentification 元素”

注意:
<profile>元素的inherits属性指定自定义类,该类要继承自ProfileBase

Profile是自动保存的,但是某些复杂类型可能无法自动保存,此时需要设置<profile>元素的automaticSaveEnabled设置为false,要保存的话则调用 Profile 上的 Save 方法即可。要动态取消Profile的自动保存功能的话则需要在 global.asax 中加一个Profile_ProfileAutoSaving事件,示例如下,仅为说明
     void  Profile_ProfileAutoSaving(Object sender, ProfileAutoSaveEventArgs e)
    
{
        
if ((e.Context.Items["CancelProfileAutoSave"] != null) && ((bool)e.Context.Items["CancelProfileAutoSave"] == true))
            e.ContinueWithProfileAutoSave 
= false;
    }

在需要取消Profile的自动保存功能的页的代码处如下写
protected   void  Page_Load( object  sender, EventArgs e)
{
  Context.Items[
"CancelProfileAutoSave"] = true;    
}


2、通过ProfileManager执行相关任务,如搜索有关所有配置文件、经过身份验证用户的配置文件及匿名用户的配置文件的统计信息,确定在给定时间段内尚未修改的配置文件的数量,根据配置文件的上一次修改日期删除单个配置文件及多个配置文件等

3、将匿名配置文件迁移到经过身份验证的配置文件
在global.asax加一个Profile_MigrateAnonymous事件处理,示例如下,仅为说明
     void  Profile_MigrateAnonymous(Object sender, ProfileMigrateEventArgs pe)
    
{
      
// 获得匿名配置
      ProfileCommon anonProfile = Profile.GetProfile(pe.AnonymousID);

      
// 从匿名配置中取值并赋值给经过身份验证的配置
      if (anonProfile.Color != System.Drawing.Color.Empty)
      
{
        Profile.Color 
= anonProfile.Color;
      }

        
      
// 从数据库中删除匿名配置
      ProfileManager.DeleteProfile(pe.AnonymousID);
        
      
// 清除与某个会话关联的匿名 Cookie 或标识符
      AnonymousIdentificationModule.ClearAnonymousIdentifier();  
    }


示例
App_Code/CustomProfile.cs
using  System;
using  System.Data;
using  System.Configuration;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

using  System.Web.Profile;

/// <summary>
/// CustomProfile 的摘要说明
/// </summary>

public   class  CustomProfile : ProfileBase
{
    
private string _customName;
    
public string CustomName
    
{
        
get { return (string)base["CustomName"]; }
        
set { base["CustomName"] = value; }
    }


    
private bool _customSex;
    
public bool CustomSex
    
{
        
get { return (bool)base["CustomSex"]; }
        
set { base["CustomSex"] = value; }
    }

}


web.config
     < profile  enabled ="true"  defaultProvider ="SqlProfileProvider"  inherits ="CustomProfile" >
      
< providers >
        
< add  name ="SqlProfileProvider"  type ="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
             connectionStringName
="SqlConnectionString"
             applicationName
="/"   />
      
</ providers >
      
< properties >
        
< add  name ="Name"   />
        
< add  name ="Color"  type ="System.Drawing.Color"   />
        
< group  name ="Group" >
          
< add  name ="Collection"  type ="System.Collections.ArrayList"   />
          
< add  name ="Price"  type ="int"  defaultValue ="100"   />
        
</ group >
      
</ properties >
    
</ profile >

Profile/Test.aspx
<% @ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Test.aspx.cs"
    Inherits
="Profile_Test" Title="存储用户配置测试" 
%>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="Server" >
    
< asp:Label  ID ="lbl"  runat ="Server"   />
</ asp:Content >

Profile/Test.aspx.cs
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

public  partial  class  Profile_Test : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
// 一看就懂
        Profile.Name = User.Identity.Name;
        Profile.Color 
= System.Drawing.Color.AliceBlue;
        Profile.Group.Collection.Clear();
        Profile.Group.Collection.Add(
"冰棍");
        Profile.Group.Collection.Add(
"瓜子");
        Profile.Group.Price 
= 999999;

        Profile.CustomName 
= User.Identity.Name;
        Profile.CustomSex 
= true;



        lbl.Text 
= "Name:" + Profile.Name + "<br />";
        lbl.Text 
+= "Color:" + Profile.Color.ToString() + "<br />";
        
foreach (string s in Profile.Group.Collection)
        
{
            lbl.Text 
+= "商品有:" + s + "<br />";
        }

        lbl.Text 
+= "价格:" + Profile.Group.Price + "<br />";

        lbl.Text 
+= "自定义类名字:" + Profile.CustomName + "<br />";
        lbl.Text 
+= "自定义类姓名:" + Profile.CustomSex;
    }

}


用“abc”这个用户登录后的运行结果
Name:abc
Color:Color [AliceBlue]
商品有:冰棍
商品有:瓜子
价格:999999
自定义类名字:abc
自定义类姓名:True


注:需要用aspnet_regsql配置数据库


OK
[源码下载]
 
RTKLIB模糊度固定实战:三种模式对比与部分模糊度固定代码解析 本文深入解析RTKLIB中模糊度固定的三种核心模式(continuous、instantaneous、fix and hold),对比其性能与适用场景,并详细拆解了部分模糊度固定技术的源码实现。通过实战案例与代码级解析,为GNSS高精度定位开发者提供了在不同数据特性下提升固定成功率的优化思路与配置建议。 阅读详情

相关推荐

GCJ02坐标系转WGS84坐标系(已实地测试基本无偏差)

坐标系转化,GCJ02坐标系,WGS84坐标系

Xiao_XianYu_的博客 1855

SpringBoot 读取配置文件的 5 种方法!

作者 | 磊哥来源 | Java面试真题解析(ID:aimianshi666)转载请联系授权(微信ID:GG_Stone)Spring Boot 中读取配置文件有以下 5 种方法:使用 @Value 读取配置文件。使用 @ConfigurationProperties 读取配置文件。使用 Environment 读取配置文件。使用 @PropertySource 读取配置文件。使用原生方式读取配置...

磊哥聊Java 9279

Python+Tableau 全流程数据分析实战:从数据清洗到商业洞察可视化

本文通过Python+Tableau完整演示电商销售数据分析流程。首先使用Python进行数据清洗(缺失值处理、异常值过滤等)和探索性分析(商品类别、时间趋势等),然后导入Tableau创建交互式可视化仪表盘。分析发现电子产品销售额最高但利润率低,美妆类利润率最优,东部地区销售表现最好。最终提出优化供应链、加强美妆推广等商业建议,展示了Python数据处理与Tableau可视化的高效配合。所有代码可直接运行,适合数据分析初学者和从业者实战参考。

weixin_44520581的博客 337

Spring boot2 使用profile 配置多环境

使用spring boot 框架开发,后来环境多了之后每次打包发布测试都需要改配置文件,就是用了profile动态配置,发布不同的环境项目。 首先要确保之前的项目能启动发布成功。 那么接下来就开始改造我们的springboot项目为多环境》》》》》》 修改项目pom文件。非常简单,只需要添加profile的配置信息即可,不需要添加修改其他任何配置。 &lt;profiles&gt;...

zhengjf123的专栏 2770

RK3576+IMX415 MIPI摄像头零拷贝显示系统

MIPI CSI-2是嵌入式视觉系统中主流的高速图像传感器接口标准,其核心价值在于低延迟、高带宽与硬件级DMA直通能力。基于V4L2子系统与DRM/KMS驱动栈,可构建从传感器RAW数据到帧缓冲区的零拷贝通路,显著降低CPU负载并提升实时性。该技术广泛应用于工业检测、边缘AI推理前数据接入及多路同步采集等场景。本文以Rockchip RK3576 SoC和索尼IMX415传感器为典型组合,详解MIPI物理层适配、内核驱动集成、GStreamer零拷贝管道搭建及systemd服务化部署,覆盖从硬件信号完整性到

weixin_36047538的博客 216

避开LLC环路设计三大坑:从K因子法看谐振频率选择与相位裕度优化

本文深入剖析LLC谐振变换器环路设计中易犯的三大误区,重点阐述如何运用K因子法优化谐振频率选择与相位裕度。文章通过实际案例,解析了工作区域选择、右半平面零点规避及补偿器相位基准等关键问题,为工程师提供了一套系统性的稳定环路设计方法,确保电源在动态负载下可靠工作。

qsc9012345的博客 262

PROFILE文件

这里要说的PROFILE文件,只针对利用于网格运动定义之用的瞬态profile文件。其它类型的profile文件,可参阅FLUENT用户文档,里头有详细的描述。 在ANSYS FLUENT中,有两种方式用于指定瞬态网格区域及边界条件: (1)与标准profile格式相同的瞬态profile文件 (2)表格格式的瞬态profile文件。 对于这两种方式,网格域及边界条件的变化均只与时间有关。

6937

EWF写保护功能详解:从安装到实战操作指南

本文详细介绍了EWF写保护功能的安装与实战操作指南。EWF(Enhanced Write Filter)通过重定向写入操作保护硬盘分区,特别适合需要长期稳定运行的系统场景。文章涵盖从安装准备、图形界面操作到命令行高级管理的全流程,并提供了常见问题的解决方案,帮助用户轻松掌握这一实用工具。

weixin_28710999的博客 446

常见的springboot读取配置文件的方式

另外还可以使用 Environment 读取配置文件,Environment 是 Spring Core 中的一个用于读取配置文件的类,将此类使用 @Autowired 注入到类中就可以使用它的 getProperty 方法来获取某个配置项的值;还可以通过原生 Properties 对象来读取配置文件,在开发中常用的还是我上面进行举例的三种,这里列举的两种方式作为了解就好。...

清欢01的博客 203

单片机:实现简单的时间片轮询调度(附完整源码)

单片机:实现简单的时间片轮询调度(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 383

Codex入门24-效率倍增秘籍(终极总结:10个让你开发速度翻倍的Codex高级技巧)

专栏收官之作!经过前23篇的系统学习,你已经掌握了 Codex CLI 的核心用法。本文浓缩10个实战验证的高级技巧:管道化提示词将复杂任务拆成递进指令链,模板化 SKILL.md 打造个人技能库,Shell 别名让操作快如闪电,多模型切换省钱又高效……这不是理论课,每个技巧都配有可直接运行的代码。掌握全部10招,构建你的 AI 开发工作流闭环,让开发速度真正翻倍!

yueyeguzhuo的专栏 189

IDEA - Profiles 配置多环境变量 - 使用

配置样例: pom配置样例:(profile.name:变量名称) <profiles> <profile> <id>dev</id> <properties> <profile.name>dev对应的变量值</profile.name> </properties> &l

知名的白菜 1976

3、神经网络在汽车中的应用

本文探讨了神经网络在现代汽车中的多种应用,包括防抱死制动系统(ABS)、燃油喷射系统、自动驾驶辅助系统以及发动机故障诊断。通过详细分析这些系统的具体工作流程和神经网络的集成方式,展示了神经网络如何提升车辆的安全性、效率与智能化水平。

moss5的博客 233

温故知新ASP.NET 2.0(C#)系列文章索引

[源码下载]温故知新ASP.NET 2.0(C#)系列文章索引作者:webabcd介绍温故知新ASP.NET 2.0(C#)系列文章索引:MasterPage(母版页)、Themes(主题)、SiteMap(站点地图)、Cache&SqlCacheDependency(缓存和SqlCacheDependency特性)、Localization(本地化,多语言)、Membership&Rol

johncools的博客 2418

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

温故知新ASP.NET 2.0(C#)(5) - Localization

介绍  声明性资源表达式可使您的应用程序使用多种语言,而不必手动编写代码来检索资源并在页中进行替换。您只需使用 ASP.NET 2.0 中新提供的表达式语法即可对资源替换进行定义。ASP.NET 2.0 支持标准的 resx 文件格式自动进行运行时资源检索。关键  1、Culture - 决定各种数据类型是如何组织,如数字与日期;UICulture - 决定了采用哪一种本地化资源,也就

eunsikehuang的专栏 619

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

转 温故知新ASP.NET 2.0(C#)系列文章索引

 温故知新ASP.NET 2.0(C#)系列文章索引作者:webabcd介绍温故知新ASP.NET 2.0(C#)系列文章索引:MasterPage(母版页)、Themes(主题)、SiteMap(站点地图)、Cache&SqlCacheDependency(缓存和SqlCacheDependency特性)、Localization(本地化,多语言)、Membership&RoleMana

Many a little makes a mickle. 429

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

用AI Agent打造APP测试搭子:用例生成到缺陷整理的工作流实践

AI Agent是具备任务拆解与工具调用能力的智能体,其核心原理是通过Function Calling或流程编排,让模型输出结构化指令并调用外部工具。在APP测试工程中,AI Agent可以显著提升用例设计、缺陷整理、日志初筛等重复性工作的效率,将测试工程师从繁琐的信息搬运中解放出来。典型应用场景包括:将PRD结构化转换为测试用例、通过ADB命令控制设备并抓取日志、自动组装缺陷描述、汇总测试报告等。本文以“测试搭子”为切入点,介绍如何基于状态机工作流搭建一个可落地的APP测试智能体,涵盖任务边界定义、工具配

weixin_33795743的博客 248

温故知新ASP.NET 2.0(C#)系列

作者:webabcd 来源:博客园 时间:2008-09-04 温故知新ASP.NET 2.0(C#)(1) - MasterPage(母版页) (2008-09-04) 温故知新ASP.NET 2.0(C#)(2) - Themes(主题) (2008-09-04) 温故知新ASP.NET 2.0(C#)(3) - SiteMap(站点地图) (2008...

weixin_30919571的博客 132

温故知新ASP.NET 2.0(C#)(1) - MasterPage(母版页)

[索引页][源码下载]温故知新ASP.NET 2.0(C#)(1) - MasterPage(母版页)作者:webabcd介绍母版页(MasterPage)就相当于模板页,挺简单的,没什么好说的。基于母版页的常用的功能有:母版页和内容页之间信息的传递,在内容页中用FindControl方法找到内容页中的控件等。另外,母版页是可以嵌套的。关键

webabcd的专栏 662

温故知新ASP.NET 2.0(C#)(5) - Localization(本地化,多语言)

[索引页][源码下载]温故知新ASP.NET 2.0(C#)(5) - Localization(本地化,多语言)作者:webabcd介绍声明性资源表达式可使您的应用程序使用多种语言,而不必手动编写代码来检索资源并在页中进行替换。您只需使用 ASP.NET 2.0 中新提供的表达式语法即可对资源替换进行定义。ASP.NET 2.0 支持标准的 resx

webabcd的专栏 787

温故知新ASP.NET 2.0(C#)(2) - Themes(主题)

[索引页][源码下载]温故知新ASP.NET 2.0(C#)(2) - Themes(主题)作者:webabcd介绍使用 ASP.NET 2.0 的“主题”功能,可以将样式和布局信息分解为单独的文件组,统称为“主题”。然后,主题可应用于任何站点,影响站点中页和控件的外观。这样,通过更改主题即可轻松地维护对站点的样式更改,而无需对站点各页进行编辑。还可与其

webabcd的专栏 474
上一篇: 温故知新ASP.NET 2.0(C#)(6) - Membership&RoleManager(成员资格和角色管理)
下一篇: 温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
webabcd
博客等级 码龄17年 28粉丝 911原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值