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 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
- 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 actif 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 de l’élément inherits
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 nouvelle 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 les 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 du profil . Vous pouvez spécifier un type de profil utilisateur personnalisé dans le fichier web.config avec l’attribut de l’élément inherits
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) |