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 profile-Abschnitts der Datei „Web.config“ ist false
.
Ein im Abschnitt profile der Datei „Web.config“ angegebener Eigenschaftentyp konnte nicht erstellt werden.
- oder -
Das allowAnonymous
-Attribut für eine Eigenschaft im Abschnitt profile der Datei „Web.config“ ist auf true
festgelegt, und das enabled
-Attribut des <anonymousIdentification>-Elements ist auf false
festgelegt.
- oder -
Das serializeAs
-Attribut für eine Eigenschaft im Abschnitt profile der Datei „Web.config“ ist auf Binary festgelegt, und die IsSerializable-Eigenschaft vom angegebenen type
gibt false
zurück.
- oder -
Der mithilfe des provider
-Attributs einer Profileigenschaft angegebene Name eines Anbieters konnte nicht in der Providers-Auflistung gefunden werden.
- oder -
Der für eine Profileigenschaft angegebene type
konnte nicht gefunden werden.
- oder -
Es wurde eine Profileigenschaft mit einem Namen angegeben, der einem Eigenschaftennamen für die im inherits
-Attribut des Abschnitts profile angegebene Basisklasse entspricht.
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 der current HttpContext verfügt über stark typisierte Accessors 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>
Die folgende ASP.NET Seite liest und legt die für das ZipCode
Benutzerprofil angegebene Eigenschaft fest.
Wichtig
Dieses Beispiel enthält ein Textfeld, das Benutzereingaben akzeptiert, was eine potenzielle Sicherheitsbedrohung darstellt. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.
<%@ 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, um die klasse zu erstellen, die für das Benutzerprofil verwendet wird. Wenn eine Anwendung gestartet wird, für die das Benutzerprofil aktiviert ist, erstellt ASP.NET eine neue Klasse vom Typ ProfileCommon
, die von der ProfileBase -Klasse erbt. Stark typisierte Accessors werden der ProfileCommon
Klasse für jede eigenschaft hinzugefügt, die im Abschnitt profilkonfiguration definiert ist. Stark typisierte Accessor die ProfileCommon
-Klasse rufen die GetPropertyValue und SetPropertyValue Methoden die ProfileBase Basisklasse zum Abrufen und festlegen Profil Eigenschaftswerte bzw. 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 des inherits
Attributs des Profilabschnitts der Konfigurationsdatei überschrieben werden. In diesem Fall geben Sie eine benutzerdefinierte Klasse an, die von der ProfileBase Basisklasse erbt.
Dieser Konstruktor ist nicht für die Verwendung aus Anwendungscode vorgesehen. Verwenden Sie die Create -Methode, um eine Instanz eines Benutzerprofils zu erstellen.