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 Eigenschaft vom Typ und eine ZipCode RecentSearchList Eigenschaft des Typs string StringCollectionenthält. Die generierte Profile Eigenschaft des aktuellen HttpContext Objekts verfügt über stark eingegebene Zugriffsoren 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 ZipCode für das Benutzerprofil angegebene Eigenschaft fest.

Wichtig

Dieses Beispiel enthält ein Textfeld, das Benutzereingaben akzeptiert, die eine potenzielle Sicherheitsrisiken darstellen. 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 Klasse zum Erstellen der Klasse, die ProfileBase für das Benutzerprofil verwendet wird. Wenn eine Anwendung, die das Benutzerprofil aktiviert hat, gestartet wird, erstellt ASP.NET eine neue TypklasseProfileCommon, die von der ProfileBase Klasse erbt. Stark eingegebene Accessoren werden der Klasse für jede eigenschaft hinzugefügt, die ProfileCommon im Profilkonfigurationsabschnitt 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 Klasse wird als Wert Profile der ProfileCommon 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 außer Kraft gesetzt werden. In diesem Fall würden Sie eine benutzerdefinierte Klasse angeben, die von der ProfileBase Basisklasse erbt.

Dieser Konstruktor soll nicht von Anwendungscode verwendet werden. Um eine Instanz eines Benutzerprofils zu erstellen, verwenden Sie die Create Methode.

Gilt für

Siehe auch