ProfileBase Klasse
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.
Ermöglicht nicht typisierten Zugriff auf Profileigenschaftswerte und Informationen.
public ref class ProfileBase : System::Configuration::SettingsBase
public class ProfileBase : System.Configuration.SettingsBase
type ProfileBase = class
inherit SettingsBase
Public Class ProfileBase
Inherits SettingsBase
- Vererbung
- Abgeleitet
Beispiele
Das folgende Codebeispiel zeigt eine Web.config-Datei, die ein Benutzerprofil angibt, das eine ZipCode
Eigenschaft vom Typ string
und eine RecentSearchList
Eigenschaft vom Typ StringCollectionenthält. Die generierte Profile Eigenschaft des aktuellen HttpContext verfügt über stark typisierte Accessoren für jede der angegebenen Eigenschaften.
<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>
Das folgende Beispiel zeigt eine ASP.NET Seite, die die für das ZipCode
Benutzerprofil angegebene Eigenschaft liest und festlegt. Bevor Sie versuchen, diesen Code auszuführen, legen Sie den Anbieter in den ASP.NET Konfigurationseinstellungen für die Website auf den Standardwert AspNetSqlProvider
fest.
<%@ 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>
Im folgenden Codebeispiel wird eine Klasse definiert, die von der ProfileBase -Klasse erbt, um ein benutzerdefiniertes Profil zu erstellen. Der Typ des benutzerdefinierten Profils wird im inherits
Attribut des Profilkonfigurationselements in der Web.config-Datei für eine Anwendung angegeben.
Wichtig
Dieses Beispiel enthält ein Textfeld, das Benutzereingaben akzeptiert, was eine potenzielle Sicherheitsgefährdung darstellt. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.
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
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 Accessoren 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.
Um eine Instanz eines Benutzerprofils in einer ASP.NET-Anwendung zu erstellen, empfiehlt es sich, die Create -Methode zu verwenden.
Hinweise für Vererber
Sie können eine benutzerdefinierte Profilimplementierung erstellen, die von der ProfileBase abstrakten Klasse erbt und Eigenschaften für das Benutzerprofil definiert, die nicht im Profilkonfigurationselement angegeben sind. Sie können einen benutzerdefinierten Benutzerprofiltyp in der datei web.config mit dem inherits
-Attribut des Profilkonfigurationselements angeben, wie im folgenden Beispiel gezeigt. Der Code für die EmployeeProfile
-Klasse ist im Abschnitt Beispiel dieses Themas enthalten.
<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>
Konstruktoren
ProfileBase() |
Erstellt eine Instanz der ProfileBase-Klasse. |
Eigenschaften
Context |
Ruft den zugeordneten Einstellungskontext ab. (Geerbt von SettingsBase) |
IsAnonymous |
Ruft einen Wert ab, der angibt, ob das Benutzerprofil für einen anonymen Benutzer ist. |
IsDirty |
Ruft einen Wert ab, der angibt, ob Profileigenschaften geändert worden sind. |
IsSynchronized |
Ruft einen Wert ab, der angibt, ob der Zugriff auf das Objekt synchronisiert (threadsicher) ist. (Geerbt von SettingsBase) |
Item[String] |
Ruft einen vom Eigenschaftennamen indizierten Profileigenschaftswert ab oder legt diesen fest. |
LastActivityDate |
Ruft das letzte Datum und die Zeit ab, als das Profil gelesen oder geändert wurde. |
LastUpdatedDate |
Ruft das letzte Datum und die Zeit ab, als das Profil geändert wurde. |
Properties |
Ruft eine Auflistung von SettingsProperty-Objekten für jede Eigenschaft im Profil ab. |
PropertyValues |
Ruft eine Auflistung von Einstellungseigenschaftswerten ab. (Geerbt von SettingsBase) |
Providers |
Ruft eine Auflistung von Einstellungsanbietern ab. (Geerbt von SettingsBase) |
UserName |
Ruft den Benutzernamen für das Profil ab. |
Methoden
Create(String) |
Wird von ASP.NET verwendet, um eine Instanz eines Profils für den angegebenen Benutzernamen zu erstellen. |
Create(String, Boolean) |
Wird von ASP.NET verwendet, um eine Instanz eines Profils für den angegebenen Benutzernamen zu erstellen. Akzeptiert einen Parameter, der angibt, ob der Benutzer authentifiziert oder anonym ist. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetProfileGroup(String) |
Ruft eine Gruppe von Eigenschaften ab, die durch einen Gruppennamen bezeichnet werden. |
GetPropertyValue(String) |
Ruft den Wert einer Profileigenschaft ab. |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) |
Initialisiert vom SettingsBase-Objekt verwendete interne Eigenschaften. (Geerbt von SettingsBase) |
Initialize(String, Boolean) |
Initialisiert die Profileigenschaftswerte und die Informationen für den aktuellen Benutzer. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
Save() |
Aktualisiert die Profildatenquelle mit geänderten Profileigenschaftswerten. |
SetPropertyValue(String, Object) |
Legt den Wert einer Profileigenschaft fest. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |