ProfileBase ProfileBase ProfileBase ProfileBase Class

Definition

Ermöglicht nicht typisierten Zugriff auf Profileigenschaftswerte und Informationen.Provides untyped access to profile property values and information.

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, ZipCode das eine Eigenschaft string vom Typ RecentSearchList und eine Eigenschaft StringCollectionvom Typ enthält.The following code example shows a Web.config file that specifies a user profile that contains a ZipCode property of type string and a RecentSearchList property of type StringCollection. Die generierte Profile -Eigenschaft des aktuellen HttpContext verfügt über stark typisierte Accessoren für jede der angegebenen Eigenschaften.The generated Profile property of the current HttpContext will have strongly typed accessors for each of the specified properties.

<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 ZipCode für das Benutzerprofil angegebene Eigenschaft liest und festlegt.The following example shows an ASP.NET page that reads and sets the ZipCode property specified for the user profile. Bevor Sie versuchen, diesen Code auszuführen, legen Sie den Anbieter in AspNetSqlProvider den ASP.NET-Konfigurationseinstellungen für die Website auf den Standardwert fest.Before attempting to run this code, set the provider to the default AspNetSqlProvider in the ASP.NET configuration settings for the Web site.

<%@ 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.The following code example defines a class that inherits from the ProfileBase class to create a custom profile. Der Typ des benutzerdefinierten Profils wird im inherits -Attribut des profile Konfigurations Elements in der Web. config-Datei für eine Anwendung angegeben.The type of the custom profile is specified in the inherits attribute of the profile configuration element in the Web.config file for an application.

Wichtig

Dieses Beispiel enthält ein Textfeld, das Benutzereingaben akzeptiert. Dies ist eine potenzielle Sicherheitsbedrohung.This example contains a text box that accepts user input, which is a potential security threat. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.For more information, see Script Exploits Overview.

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.ASP.NET uses the ProfileBase class to create the class used for the user profile. Wenn eine Anwendung, für die das Benutzerprofil aktiviert ist, gestartet wird, erstellt ASP.net eine neue ProfileCommonKlasse des Typs, die von ProfileBase der-Klasse erbt.When an application that has the user profile enabled is started, ASP.NET creates a new class of type ProfileCommon, which inherits from the ProfileBase class. Stark typisierte Accessoren werden der ProfileCommon -Klasse für jede im Profil Konfigurations Abschnitt definierte Eigenschaft hinzugefügt.Strongly typed accessors are added to the ProfileCommon class for each property defined in the profile configuration section. Stark typisierte Accessor die ProfileCommon -Klasse rufen die GetPropertyValue und SetPropertyValue Methoden die ProfileBase Basisklasse zum Abrufen und festlegen Profil Eigenschaftswerte bzw.The strongly typed accessors of the ProfileCommon class call the GetPropertyValue and SetPropertyValue methods of the ProfileBase base class to retrieve and set profile property values, respectively. Eine Instanz der ProfileCommon -Klasse wird als Wert Profile der-Eigenschaft der ASP.NET-Anwendung festgelegt.An instance of the ProfileCommon class is set as the value of the Profile property for the ASP.NET application.

Um eine Instanz eines Benutzerprofils in einer ASP.NET-Anwendung zu erstellen, empfiehlt es sich, die Create -Methode zu verwenden.To create an instance of a user profile in an ASP.NET application, it is recommended that you use the Create method.

Hinweise zur VererbungNotes to Inheritors

Sie können eine benutzerdefinierte Profil Implementierung erstellen, die von der ProfileBase abstrakten-Klasse erbt und Eigenschaften für das Benutzerprofil definiert, die nicht im Profil Konfigurationselement angegeben sind.You can create a custom profile implementation that inherits from the ProfileBase abstract class and defines properties for the user profile that are not specified in the profile configuration element. Sie können einen benutzerdefinierten Benutzer Profiltyp in der Datei "Web. config" mit inherits dem-Attribut des profile Konfigurations Elements angeben, wie im folgenden Beispiel gezeigt.You can specify a custom user-profile type in the web.config file with the inherits attribute of the profile configuration element, as shown in the following example. Der Code für die EmployeeProfile -Klasse ist im Beispiel Abschnitt dieses Themas enthalten.The code for the EmployeeProfile class is included in the Example section of this topic.

<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() ProfileBase() ProfileBase() ProfileBase()

Erstellt eine Instanz der ProfileBase-Klasse.Creates an instance of the ProfileBase class.

Eigenschaften

Context Context Context Context

Ruft den zugeordneten Einstellungskontext ab.Gets the associated settings context.

(Inherited from SettingsBase)
IsAnonymous IsAnonymous IsAnonymous IsAnonymous

Ruft einen Wert ab, der angibt, ob das Benutzerprofil für einen anonymen Benutzer ist.Gets a value indicating whether the user profile is for an anonymous user.

IsDirty IsDirty IsDirty IsDirty

Ruft einen Wert ab, der angibt, ob Profileigenschaften geändert worden sind.Gets a value indicating whether any of the profile properties have been modified.

IsSynchronized IsSynchronized IsSynchronized IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf das Objekt synchronisiert (threadsicher) ist.Gets a value indicating whether access to the object is synchronized (thread safe).

(Inherited from SettingsBase)
Item[String] Item[String] Item[String] Item[String]

Ruft einen vom Eigenschaftennamen indizierten Profileigenschaftswert ab oder legt diesen fest.Gets or sets a profile property value indexed by the property name.

LastActivityDate LastActivityDate LastActivityDate LastActivityDate

Ruft das letzte Datum und die Zeit ab, als das Profil gelesen oder geändert wurde.Gets the most recent date and time that the profile was read or modified.

LastUpdatedDate LastUpdatedDate LastUpdatedDate LastUpdatedDate

Ruft das letzte Datum und die Zeit ab, als das Profil geändert wurde.Gets the most recent date and time that the profile was modified.

Properties Properties Properties Properties

Ruft eine Auflistung von SettingsProperty-Objekten für jede Eigenschaft im Profil ab.Gets a collection of SettingsProperty objects for each property in the profile.

PropertyValues PropertyValues PropertyValues PropertyValues

Ruft eine Auflistung von Einstellungseigenschaftswerten ab.Gets a collection of settings property values.

(Inherited from SettingsBase)
Providers Providers Providers Providers

Ruft eine Auflistung von Einstellungsanbietern ab.Gets a collection of settings providers.

(Inherited from SettingsBase)
UserName UserName UserName UserName

Ruft den Benutzernamen für das Profil ab.Gets the user name for the profile.

Methoden

Create(String) Create(String) Create(String) Create(String)

Wird von ASP.NET verwendet, um eine Instanz eines Profils für den angegebenen Benutzernamen zu erstellen.Used by ASP.NET to create an instance of a profile for the specified user name.

Create(String, Boolean) Create(String, Boolean) Create(String, Boolean) Create(String, Boolean)

Wird von ASP.NET verwendet, um eine Instanz eines Profils für den angegebenen Benutzernamen zu erstellen.Used by ASP.NET to create an instance of a profile for the specified user name. Akzeptiert einen Parameter, der angibt, ob der Benutzer authentifiziert oder anonym ist.Takes a parameter indicating whether the user is authenticated or anonymous.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetProfileGroup(String) GetProfileGroup(String) GetProfileGroup(String) GetProfileGroup(String)

Ruft eine Gruppe von Eigenschaften ab, die durch einen Gruppennamen bezeichnet werden.Gets a group of properties identified by a group name.

GetPropertyValue(String) GetPropertyValue(String) GetPropertyValue(String) GetPropertyValue(String)

Ruft den Wert einer Profileigenschaft ab.Gets the value of a profile property.

GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection)

Initialisiert vom SettingsBase-Objekt verwendete interne Eigenschaften.Initializes internal properties used by SettingsBase object.

(Inherited from SettingsBase)
Initialize(String, Boolean) Initialize(String, Boolean) Initialize(String, Boolean) Initialize(String, Boolean)

Initialisiert die Profileigenschaftswerte und die Informationen für den aktuellen Benutzer.Initializes the profile property values and information for the current user.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Save() Save() Save() Save()

Aktualisiert die Profildatenquelle mit geänderten Profileigenschaftswerten.Updates the profile data source with changed profile property values.

SetPropertyValue(String, Object) SetPropertyValue(String, Object) SetPropertyValue(String, Object) SetPropertyValue(String, Object)

Legt den Wert einer Profileigenschaft fest.Sets the value of a profile property.

ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Gilt für:

Siehe auch