ProfileBase Classe

Définition

Fournit l'accès non typé aux informations et aux valeurs de propriété de profil.

public ref class ProfileBase : System::Configuration::SettingsBase
public class ProfileBase : System.Configuration.SettingsBase
type ProfileBase = class
    inherit SettingsBase
Public Class ProfileBase
Inherits SettingsBase
Héritage
ProfileBase
Dérivé

Exemples

L’exemple de code suivant montre un fichier Web.config qui spécifie un profil utilisateur qui contient une ZipCode propriété de type string et une RecentSearchList propriété de type StringCollection. La propriété générée Profile du actuel HttpContext aura des accesseurs fortement typés pour chacune des propriétés spécifiées.

<configuration>
  <system.web>
    <anonymousIdentification enabled="true" />

    <profile enabled="true" defaultProvider="SqlProvider" >
      <properties>
        <add name="ZipCode" allowAnonymous="true" />
        <add name="RecentSearchList"
          type="System.Collections.Specialized.StringCollection"
          serializeAs="Xml"
          allowAnonymous="true" />
      </properties>
    </profile>
  </system.web>
</configuration>

L’exemple suivant montre une page ASP.NET qui lit et définit la ZipCode propriété spécifiée pour le profil utilisateur. Avant d’essayer d’exécuter ce code, définissez le fournisseur sur la valeur par défaut AspNetSqlProvider dans les paramètres de configuration ASP.NET pour le site Web.

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void Page_PreRender()
{
  if (Profile.ZipCode == null)
  {
    PersonalizePanel.Visible = false;
    GetZipCodePanel.Visible = true;
  }
  else
  {
    ZipCodeLabel.Text = Profile.ZipCode;

    // Get personalized information for zip code here.

    PersonalizePanel.Visible = true;
    GetZipCodePanel.Visible = false;
  }
}

public void ChangeZipCode_OnClick(object sender, EventArgs args)
{
  ZipCodeTextBox.Text = Profile.ZipCode;
  Profile.ZipCode = null;

  PersonalizePanel.Visible = false;
  GetZipCodePanel.Visible = true;
}

public void EnterZipCode_OnClick(object sender, EventArgs args)
{
  Profile.ZipCode = ZipCodeTextBox.Text;
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>

<form id="form1" runat="server">
  <table border="1" cellpadding="2" cellspacing="2">
    <tr>
      <td>
        <asp:Panel id="PersonalizePanel" runat="Server" Visible="False">
          Information for Zip Code: <asp:Label id="ZipCodeLabel" Runat="Server" /><br />
          <!-- Information for Zip Code here. -->
          <br />
          <asp:LinkButton id="ChangeZipCodeButton" Runat="Server" Text="Change Your Zip Code"
                          OnClick="ChangeZipCode_OnClick" />
        </asp:Panel>
        <asp:Panel id="GetZipCodePanel" runat="Server" Visible="False">
          You can personalize this page by entering your Zip Code: 
          <asp:TextBox id="ZipCodeTextBox" Columns="5" MaxLength="5" runat="Server" />
          <asp:LinkButton id="EnterZipCodeButton" Runat="Server" Text="Go"
                          OnClick="EnterZipCode_OnClick" />
        </asp:Panel>
      </td>
    </tr>
  </table>
</form>

</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Public Sub Page_PreRender()

  If Profile.ZipCode = Nothing Then
    PersonalizePanel.Visible = False
    GetZipCodePanel.Visible = True
  Else
    ZipCodeLabel.Text = Profile.ZipCode

    ' Get personalized information for zip code here.

    PersonalizePanel.Visible = True
    GetZipCodePanel.Visible = False
  End If

End Sub

Public Sub ChangeZipCode_OnClick(sender As Object, args As EventArgs)
  ZipCodeTextBox.Text = Profile.ZipCode
  Profile.ZipCode = Nothing

  PersonalizePanel.Visible = False
  GetZipCodePanel.Visible = True
End Sub

Public Sub EnterZipCode_OnClick(sender As Object, args As EventArgs)
  Profile.ZipCode = ZipCodeTextBox.Text
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Home Page</title>
</head>
<body>

<form id="form1" runat="server">
  <table border="1" cellpadding="2" cellspacing="2">
    <tr>
      <td>
        <asp:Panel id="PersonalizePanel" runat="Server" Visible="False">
          Information for Zip Code: <asp:Label id="ZipCodeLabel" Runat="Server" /><br />
          <!-- Information for Zip Code here. -->
          <br />
          <asp:LinkButton id="ChangeZipCodeButton" Runat="Server" Text="Change Your Zip Code"
                          OnClick="ChangeZipCode_OnClick" />
        </asp:Panel>
        <asp:Panel id="GetZipCodePanel" runat="Server" Visible="False">
          You can personalize this page by entering your Zip Code: 
          <asp:TextBox id="ZipCodeTextBox" Columns="5" MaxLength="5" runat="Server" />
          <asp:LinkButton id="EnterZipCodeButton" Runat="Server" Text="Go"
                          OnClick="EnterZipCode_OnClick" />
        </asp:Panel>
      </td>
    </tr>
  </table>
</form>

</body>
</html>

L’exemple de code suivant définit une classe qui hérite de la ProfileBase classe pour créer un profil personnalisé. Le type du profil personnalisé est spécifié dans l’attribut inherits de l’élément de configuration de profil dans le fichier Web.config d’une application.

Important

Cet exemple contient une zone de texte qui accepte l’entrée utilisateur, qui est une menace de sécurité potentielle. Par défaut, les pages web ASP.NET vérifient que l’entrée d’utilisateur n’inclut pas de script ou d’éléments HTML. Pour plus d’informations, consultez Vue d’ensemble des attaques de script.

using System;
using System.Web.Profile;

namespace Samples.AspNet.Profile
{
  public class EmployeeProfile : ProfileBase
  {
    [SettingsAllowAnonymous(false)]
    [ProfileProvider("EmployeeInfoProvider")]
    public string Department
    {
      get { return base["EmployeeDepartment"].ToString(); }
      set { base["EmployeeDepartment"] = value; }
    }

    [SettingsAllowAnonymous(false)]
    [ProfileProvider("EmployeeInfoProvider")]
    public EmployeeInfo Details
    {
      get { return (EmployeeInfo)base["EmployeeInfo"]; }
      set { base["EmployeeInfo"] = value; }
    }
  }

  public class EmployeeInfo
  {
    public string Name;
    public string Address;
    public string Phone;
    public string EmergencyContactName;
    public string EmergencyContactAddress;
    public string EmergencyContactPhone;
  }
}
Imports System.Web.Profile

Namespace Samples.AspNet.Profile

  Public Class EmployeeProfile
    Inherits ProfileBase

    <SettingsAllowAnonymous(False)> _
    <ProfileProvider("EmployeeInfoProvider")> _
    Public Property Department As String
      Get
        Return MyBase.Item("EmployeeDepartment").ToString()
      End Get
      Set
        MyBase.Item("EmployeeDepartment") = value
      End Set
    End Property

    <SettingsAllowAnonymous(False)> _
    <ProfileProvider("EmployeeInfoProvider")> _
    Public Property Details As EmployeeInfo
      Get
        Return CType(MyBase.Item("EmployeeInfo"), EmployeeInfo)
      End Get
      Set
        MyBase.Item("EmployeeInfo") = value
      End Set
    End Property
  End Class

  Public Class EmployeeInfo
    Public Name As String
    Public Address As String
    Public Phone As String
    Public EmergencyContactName As String
    Public EmergencyContactAddress As String
    Public EmergencyContactPhone As String
  End Class

End Namespace

Remarques

ASP.NET utilise la ProfileBase classe pour créer la classe utilisée pour le profil utilisateur. Lorsqu’une application pour laquelle le profil utilisateur est activé est démarrée, ASP.NET crée une classe de type ProfileCommon, qui hérite de la ProfileBase classe . Des accesseurs fortement typés sont ajoutés à la ProfileCommon classe pour chaque propriété définie dans la section configuration du profil . Les accesseurs fortement typés de la ProfileCommon classe appellent les GetPropertyValue méthodes et SetPropertyValue de la ProfileBase classe de base pour récupérer et définir des valeurs de propriété de profil, respectivement. Une instance de la ProfileCommon classe est définie comme valeur de la Profile propriété pour l’application ASP.NET.

Pour créer une instance d’un profil utilisateur dans une application ASP.NET, il est recommandé d’utiliser la Create méthode .

Notes pour les héritiers

Vous pouvez créer une implémentation de profil personnalisé qui hérite de la ProfileBase classe abstraite et définit des propriétés pour le profil utilisateur qui ne sont pas spécifiées dans l’élément de configuration de profil . Vous pouvez spécifier un type de profil utilisateur personnalisé dans le fichier web.config avec l’attribut inherits de l’élément de configuration de profil , comme illustré dans l’exemple suivant. Le code de la EmployeeProfile classe est inclus dans la section Exemple de cette rubrique.

<configuration>
   <system.web>
      <profile inherits="Samples.AspNet.Profile.EmployeeProfile"  
      defaultProvider="SqlProvider">  
      <providers>  
         <clear />  
         <add  
            name="SqlProvider"  
            type="System.Web.Profile.SqlProfileProvider"   
            connectionStringName="SqlServices"   
            description="SQL Profile Provider for Sample"/>   
         <add  
            name="EmployeeInfoProvider"  
            type="System.Web.Profile.SqlProfileProvider"   
            connectionStringName="SqlServices"   
            description="SQL Profile Provider for Employee Info"/>   
      </providers>  
      
      <properties>  
         <add name="GarmentSize" />  
      </properties>  
      </profile>  
   </system.web>
</configuration>

Constructeurs

ProfileBase()

Crée une instance de la classe ProfileBase.

Propriétés

Context

Obtient le contexte de paramètres associé.

(Hérité de SettingsBase)
IsAnonymous

Obtient une valeur qui indique si le profil utilisateur est destiné à un utilisateur anonyme.

IsDirty

Obtient une valeur qui indique si l'une des propriétés de profil a été modifiée.

IsSynchronized

Obtient une valeur indiquant si l'accès à l'objet est synchronisé (thread-safe).

(Hérité de SettingsBase)
Item[String]

Obtient ou définit une valeur de propriété de profil indexée par le nom de propriété.

LastActivityDate

Obtient la date et l'heure de dernière lecture ou modification du profil.

LastUpdatedDate

Obtient la date et l'heure de dernière modification du profil.

Properties

Obtient une collection d'objets SettingsProperty pour chaque propriété dans le profil.

PropertyValues

Obtient une collection de valeurs de propriété de paramètres.

(Hérité de SettingsBase)
Providers

Obtient une collection de fournisseurs de paramètres.

(Hérité de SettingsBase)
UserName

Obtient le nom d'utilisateur du profil.

Méthodes

Create(String)

Utilisé par ASP.NET afin de créer une instance d'un profil pour le nom d'utilisateur spécifié.

Create(String, Boolean)

Utilisé par ASP.NET afin de créer une instance d'un profil pour le nom d'utilisateur spécifié. Prend un paramètre qui indique si l'utilisateur est authentifié ou anonyme.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetProfileGroup(String)

Obtient un groupe de propriétés identifié par un nom de groupe.

GetPropertyValue(String)

Obtient la valeur d'une propriété de profil.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection)

Initialise les propriétés internes utilisées par l'objet SettingsBase.

(Hérité de SettingsBase)
Initialize(String, Boolean)

Initialise les informations et les valeurs des propriétés du profil de l'utilisateur en cours.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
Save()

Met à jour la source de donnée de profil avec les valeurs de propriété de profil modifiées.

SetPropertyValue(String, Object)

Définit la valeur d'une propriété de profil.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi