`
jiagou
  • 浏览: 2608589 次
文章分类
社区版块
存档分类
最新评论

C#_Profile 配置

 
阅读更多
关键

  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" />

<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

分享到:
评论

相关推荐

    c串口_C#_串口_

    `Profile.cs`可能是用户配置或状态类,用于封装用户的一些个性化设置或者通信状态信息。 `Program.cs`是整个应用的入口点,它定义了程序如何启动,包括创建主要的窗体实例。 `SerialPortConnection.csproj`是C#...

    c# 操作 ini 配置文件

    c# 操作 ini 配置文件 读取,写配置

    C#连接指定的WIFI

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用和游戏时。针对题目中的【标题】"C#连接指定的WIFI",我们可以深入探讨如何使用C#来管理和连接无线网络,特别是在Windows操作系统环境下。这个...

    C#低功耗蓝牙通信

    BLE通信的关键在于GATT(Generic Attribute Profile),它定义了如何组织和交换数据。在`BlueToothManager.cs`中,可能会有对GATT服务和特性的操作,如查找服务,读取或写入特性值,以及订阅特征的更改通知。这些...

    c#获取电脑的WIFI列表并配置联网

    综上所述,"c#获取电脑的WIFI列表并配置联网"涉及到的主要知识点有:C#与Windows系统的交互,利用.NET Framework的网络和管理类库,以及通过WMI接口进行Wi-Fi连接操作。实际开发中,还需要考虑错误处理、用户界面...

    UserProFile

    UserProFile,简单来说,就是用户配置文件,是系统用来存储用户特定信息的数据结构。这些信息可能包括用户的个人资料、偏好设置、权限等级、工作环境设定等,以便于用户在使用系统或应用时获得个性化的体验。本文将...

    C# RealSense获取图像流Demo

    在本文中,我们将深入探讨如何使用C#与Intel RealSense D435摄像头进行交互,以获取图像流。Intel RealSense D435是一款高级的3D深度相机,广泛应用于机器人导航、AR/VR、无人机避障等领域。C#作为.NET框架的主要...

    一个高手写的内容管理系统(C#版)

    `Global.asax`文件是ASP.NET应用的核心配置文件,用于处理应用程序级的事件,如启动、结束等,同时也是定义路由规则的地方。这表明该系统采用了面向事件的编程模型。 二、功能模块分析 1. 用户管理:`passport`...

    C# 使用ManagedWifi连隐藏的WIFI

    2. **ProfileXml**:这是连接配置的XML表示,对于隐藏网络,需要包含更详细的信息,如网络安全类型(WPA2、WEP等)、密码等。 3. `WlanConnectionMode.Profile`:指定使用配置文件进行连接。 4. `IConnectionOptions...

    C#蓝牙通信(客户端SPP)+串口通信+画图插值处理

    首先,该项目使用了InTheHand.Net.Bluetooth库,这是一个强大的.NET Framework库,用于在Windows平台上实现蓝牙(Serial Port Profile,SPP)客户端功能。该库提供了丰富的API,使得开发者能够方便地创建蓝牙设备...

    蓝牙SPP C# 源程序

    蓝牙SPP(Serial Port Profile)是蓝牙技术标准中的一种服务,允许通过蓝牙设备模拟串行端口进行数据传输。在C#中实现蓝牙SPP功能,可以为移动设备、嵌入式系统或桌面应用程序提供无线通信能力。这个压缩包文件包含...

    实现使用C#代码完成wifi的切换和连接功能

    实现此类功能可能需要管理员权限,因为涉及到系统级别的网络配置。在非管理员模式下运行,可能会受到权限限制,无法执行某些操作。 9. **使用.NET Framework的其他类库**: .NET Framework也提供了一些高级类库,...

    WINCE下读写INI配置文件

    在Windows CE (WINCE)操作系统环境下,开发人员经常需要处理配置文件来存储应用程序的设置或...通过`profile.cpp`和`profile.h`,开发者可以在WINCE环境下轻松地读取和写入配置信息,增强了程序的兼容性和可维护性。

    C#调用WebService实现天气预报

    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class WeatherService : SoapHttpClientProtocol { [WebMethod] public string GetWeather(string city) { // 这里会由编译器自动生成,...

    C#,Wifi搜索与连接,断开​

    interface.Connect(new Wlan.WlanConnectionParameters(ssid, security, Wlan.WlanConnectionMode.Profile, Wlan.WlanIeType.None)); ``` 断开WiFi连接则相对简单,只需要调用`WlanInterface.Disconnect`方法: ``...

    c#编程设置环境变量

    在C#编程中,环境变量是一个非常重要的概念,它们提供了在不同进程间共享信息的方式,尤其是在配置路径或者系统设置时。Visual Studio 2008是C#开发的一个经典版本,我们可以通过它来创建和管理工程。在这个场景中,...

    修改网络设置源码 c#

    在C#编程环境中,修改网络设置涉及到对操作系统底层网络配置的访问和操作。这个主题主要涵盖以下几个关键知识点: 1. **WMI(Windows Management Instrumentation)**:在C#中,通过WMI(Windows Management ...

    c#串口小助手开源

    4. `Profile.cs`:可能包含了用户配置或设备配置信息的类,用于存储和读取用户的串口设置。 5. `Form1.resx`:资源文件,包含了窗体的本地化资源,如控件文本、图标等。 6. `Properties`:项目属性文件夹,包含了...

    C# 读取RAW文件程序

    - 需要根据相机的色彩配置文件(ICC Profile)进行色彩空间转换,如从线性RAW到sRGB或Adobe RGB。 4. **解码过程**: - 解码RAW文件涉及色彩校正、去马赛克(Demosaicing)、白平衡调整等步骤。 - 色彩校正基于...

    基于C#的onvif协议之抓图

    这通常包括请求设备的Profile(配置文件),其中包含了图像分辨率、编码格式等关键信息。 4. **抓图请求**:构造一个HTTP GET请求,目标是设备的媒体服务端点,参数通常包含所需的Profile Token和可能的其他选项,...

Global site tag (gtag.js) - Google Analytics