ProfileBase Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit un accès non typé aux valeurs et informations des propriétés 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
- 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 courant 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, ASP.NET pages web valident que l’entrée utilisateur n’inclut pas de script ou d’éléments HTML. Pour plus d’informations, consultez Vue d’ensemble des exploits 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 sur laquelle le profil utilisateur est activé est activée, ASP.NET crée une classe de type ProfileCommon, qui hérite de la ProfileBase classe. Les 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 respectivement les méthodes et SetPropertyValue les GetPropertyValue méthodes de la ProfileBase classe de base pour récupérer et définir des valeurs de propriété de profil. 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ée qui hérite de la ProfileBase classe abstraite et définit les propriétés du 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
| Nom | Description |
|---|---|
| ProfileBase() |
Crée une instance de la classe ProfileBase. |
Propriétés
| Nom | Description |
|---|---|
| Context |
Obtient le contexte des paramètres associés. (Hérité de SettingsBase) |
| IsAnonymous |
Obtient une valeur indiquant si le profil utilisateur est pour un utilisateur anonyme. |
| IsDirty |
Obtient une valeur indiquant si l’une des propriétés du 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 la propriété. |
| LastActivityDate |
Obtient la date et l’heure les plus récentes auxquelles le profil a été lu ou modifié. |
| LastUpdatedDate |
Obtient la date et l’heure les plus récentes de modification du profil. |
| Properties |
Obtient une collection d’objets SettingsProperty pour chaque propriété du 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
| Nom | Description |
|---|---|
| Create(String, Boolean) |
Utilisé par ASP.NET pour créer une instance d’un profil pour le nom d’utilisateur spécifié. Prend un paramètre indiquant si l’utilisateur est authentifié ou anonyme. |
| Create(String) |
Utilisé par ASP.NET pour créer une instance d’un profil pour le nom d’utilisateur spécifié. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetProfileGroup(String) |
Obtient un groupe de propriétés identifiées par un nom de groupe. |
| GetPropertyValue(String) |
Obtient la valeur d’une propriété de profil. |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) |
Initialise les propriétés internes utilisées par SettingsBase l’objet. (Hérité de SettingsBase) |
| Initialize(String, Boolean) |
Initialise les valeurs et informations des propriétés de profil pour l’utilisateur actuel. |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| Save() |
Met à jour la source de données 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) |