ProfileBase Constructor

Definitie

Hiermee maakt u een exemplaar van de ProfileBase klasse.

public:
 ProfileBase();
public ProfileBase();
Public Sub New ()

Uitzonderingen

Het enabled kenmerk van de profielsectie van het bestand Web.config is false.

Er kan geen eigenschapstype worden gemaakt dat is opgegeven in de profielsectie van het Web.config-bestand.

– of –

Het allowAnonymous kenmerk voor een eigenschap in de profielsectie van het bestand Web.config is ingesteld true op en het enabled kenmerk van het <anonymousIdentification-element> is ingesteld op false.

– of –

Het serializeAs kenmerk voor een eigenschap in de profielsectie van het bestand Web.config is ingesteld op Binary en de IsSerializable eigenschap van de opgegeven type retourneert false.

– of –

De naam van een provider die is opgegeven met behulp van het provider kenmerk van een profieleigenschap, is niet gevonden in de Providers verzameling.

– of –

Kan de type opgegeven voor een profieleigenschap niet vinden.

– of –

Er is een profieleigenschap opgegeven met een naam die overeenkomt met een eigenschapsnaam op de basisklasse die is opgegeven in het inherits kenmerk van de profielsectie .

Voorbeelden

In het volgende Web.config bestand wordt een gebruikersprofiel opgegeven dat een eigenschap van het ZipCode type string en een eigenschap van het RecentSearchList type bevat StringCollection. De gegenereerde Profile eigenschap van de huidige HttpContext heeft sterk getypte accessors voor elk van de opgegeven eigenschappen.

<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>

Op de volgende ASP.NET pagina wordt de eigenschap ZipCode opgegeven voor het gebruikersprofiel gelezen en ingesteld.

Important

Dit voorbeeld bevat een tekstvak dat gebruikersinvoer accepteert. Dit is een mogelijke beveiligingsrisico. Standaard valideren ASP.NET webpagina's dat gebruikersinvoer geen script- of HTML-elementen bevat. Zie Overzicht van Script Exploits voor meer informatie.

<%@ 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>

Opmerkingen

ASP.NET gebruikt de klasse ProfileBase om de klasse te maken die wordt gebruikt voor het gebruikersprofiel. Wanneer een toepassing waarvoor het gebruikersprofiel is ingeschakeld, wordt gestart, maakt ASP.NET een nieuwe klasse van het type ProfileCommon, die wordt overgenomen van de klasse ProfileBase. Sterk getypte accessors worden toegevoegd aan de ProfileCommon klasse voor elke eigenschap die is gedefinieerd in de sectie profielconfiguratie . De sterk getypte accessors van de ProfileCommon klasse roepen respectievelijk de GetPropertyValue en SetPropertyValue methoden van de ProfileBase basisklasse aan om respectievelijk profieleigenschapswaarden op te halen en in te stellen. Een exemplaar van de klasse ProfileCommon wordt ingesteld als de waarde van de eigenschap Profile voor de ASP.NET-toepassing.

Note

De basisklasse die wordt gebruikt voor het genereren van de klasse die in de Profile eigenschap is opgeslagen, kan worden overschreven met behulp van het inherits kenmerk van de profielsectie van het configuratiebestand. In dit geval geeft u een aangepaste klasse op die wordt overgenomen van de ProfileBase basisklasse.

Deze constructor is niet bedoeld voor gebruik vanuit toepassingscode. Als u een exemplaar van een gebruikersprofiel wilt maken, gebruikt u de Create methode.

Van toepassing op

Zie ook