ProfileBase Constructeur
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.
Crée une instance de la classe ProfileBase.
public:
ProfileBase();
public ProfileBase ();
Public Sub New ()
Exceptions
L’attribut enabled
de la section profile du fichier Web.config est false
.
Un type de propriété spécifié dans la section profile du fichier Web.config n’a pas pu être créé.
- ou -
L’attribut allowAnonymous
d’une propriété de la section profile du fichier Web.config est défini avec la valeur true
, tandis que l’attribut enabled
de l’élément <anonymousIdentification> est défini avec la valeur false
.
- ou -
L’attribut serializeAs
d’une propriété de la section profile du fichier Web.config est défini avec la valeur Binary et la propriété IsSerializable du type
spécifié retourne false
.
- ou -
Le nom d'un fournisseur spécifié à l'aide de l'attribut provider
d'une propriété de profil est introuvable dans la collection Providers.
- ou -
Impossible de trouver le type
spécifié d'une propriété de profil.
- ou -
Une propriété de profil a été spécifiée avec un nom qui correspond à un nom de propriété de la classe de base spécifiée dans l’attribut inherits
de la section profile.
Exemples
Le fichier Web.config suivant 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>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
</connectionStrings>
<system.web>
<anonymousIdentification enabled="true" />
<profile defaultProvider="SqlProvider" >
<providers>
<add
name="SqlProvider"
connectionStringName="SqlServices"
applicationName="ProfileBaseApplication"
type="System.Web.Profile.SqlProfileProvider" />
</providers>
<properties>
<add name="ZipCode" allowAnonymous="true" />
<add name="RecentSearchList"
type="System.Collections.Specialized.StringCollection"
serializeAs="Xml"
allowAnonymous="true" />
</properties>
</profile>
</system.web>
</configuration>
La page ASP.NET suivante lit et définit la ZipCode
propriété spécifiée pour le profil utilisateur.
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.
<%@ 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>
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.
Notes
La classe de base utilisée pour générer la classe stockée dans la Profile propriété peut être remplacée à l’aide de l’attribut inherits
de la section profil du fichier de configuration. Dans ce cas, vous devez spécifier une classe personnalisée qui hérite de la ProfileBase classe de base.
Ce constructeur n’est pas destiné à être utilisé à partir du code d’application. Pour créer une instance d’un profil utilisateur, utilisez la Create méthode .