ProfileBase Konstruktor
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt eine Instanz der ProfileBase-Klasse.
public:
ProfileBase();
public ProfileBase();
Public Sub New ()
Ausnahmen
Das enabled Attribut des Profilabschnitts der datei Web.config ist false.
Ein im Profilabschnitt der Web.config Datei angegebener Eigenschaftstyp konnte nicht erstellt werden.
- oder -
Das allowAnonymous Attribut für eine Eigenschaft im Profilabschnitt der datei Web.config wird auf und true das enabled Attribut des <anonymousIdentification-Elements> auf festgelegt false.
- oder -
Das serializeAs Attribut für eine Eigenschaft im Profilabschnitt der Web.config Datei wird auf Binary und die IsSerializable Eigenschaft der angegebenen type Rückgaben falsefestgelegt.
- oder -
Der Name eines anbieters, der mithilfe des provider Attributs einer Profileigenschaft angegeben wurde, wurde in der Providers Auflistung nicht gefunden.
- oder -
Die type angegebene Eigenschaft für eine Profileigenschaft wurde nicht gefunden.
- oder -
Eine Profileigenschaft wurde mit einem Namen angegeben, der einem Eigenschaftsnamen in der basisklasse entspricht, die inherits im Attribut des Profilabschnitts angegeben ist.
Beispiele
Die folgende Web.config Datei gibt ein Benutzerprofil an, das eine ZipCode Eigenschaft vom Typ string und eine RecentSearchList Eigenschaft vom Typ StringCollectionenthält. Die generierte Profile Eigenschaft des aktuellen HttpContext Objekts verfügt über stark typisierte Accessoren für jede der angegebenen Eigenschaften.
<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>
Im folgenden ASP.NET Seite wird die ZipCode für das Benutzerprofil angegebene Eigenschaft gelesen und festgelegt.
Von Bedeutung
Dieses Beispiel enthält ein Textfeld, das Benutzereingaben akzeptiert, bei denen es sich um eine potenzielle Sicherheitsrisiken handelt. Standardmäßig überprüfen ASP.NET Webseiten, dass die Benutzereingabe keine Skript- oder HTML-Elemente enthält. Weitere Informationen finden Sie unter Script Exploits Overview.
<%@ 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>
Hinweise
ASP.NET verwendet die ProfileBase Klasse zum Erstellen der Klasse, die für das Benutzerprofil verwendet wird. Wenn eine Anwendung mit aktiviertem Benutzerprofil gestartet wird, erstellt ASP.NET eine neue Klasse vom Typ ProfileCommon, die von der ProfileBase Klasse erbt. Stark typierte Accessoren werden der ProfileCommon Klasse für jede im Profilkonfigurationsabschnitt definierte Eigenschaft hinzugefügt. Die stark typierten Accessoren der Klasse rufen die GetPropertyValue Methoden SetPropertyValueProfileBase der ProfileCommon Basisklasse auf, um Profileigenschaftenwerte abzurufen bzw. festzulegen. Eine Instanz der ProfileCommon Klasse wird als Wert der Profile Eigenschaft für die ASP.NET Anwendung festgelegt.
Hinweis
Die Basisklasse, die zum Generieren der in der Profile Eigenschaft gespeicherten Klasse verwendet wird, kann mithilfe inherits des Attributs des Profilabschnitts der Konfigurationsdatei überschrieben werden. In diesem Fall würden Sie eine benutzerdefinierte Klasse angeben, die von der ProfileBase Basisklasse erbt.
Dieser Konstruktor ist nicht für die Verwendung aus Dem Anwendungscode vorgesehen. Verwenden Sie die Create Methode, um eine Instanz eines Benutzerprofils zu erstellen.