Freigeben über


ProfileBase Konstruktor

Definition

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.

Gilt für:

Weitere Informationen