Sdílet prostřednictvím


ProfileBase Konstruktor

Definice

Vytvoří instanci objektu ProfileBase třídy.

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

Výjimky

Atribut enabled oddílu profilu souboru Web.config je false.

Nelze vytvořit typ vlastnosti zadaný v oddílu profilu souboru Web.config.

-nebo-

Atribut allowAnonymous pro vlastnost v oddílu profilu Web.config souboru je nastaven na true a enabled atribut <anonymousIdentification> element je nastaven na falsehodnotu .

-nebo-

Atribut serializeAs vlastnosti v oddílu profilu souboru Web.config je nastaven na Binary hodnotu a IsSerializable vlastnost zadaného type objektu vrátí falsehodnotu .

-nebo-

Název zprostředkovatele zadaného pomocí atributu provider vlastnosti profilu nebyl v kolekci Providers nalezen.

-nebo-

Zadaný type parametr pro vlastnost profilu nebyl nalezen.

-nebo-

Vlastnost profilu byla zadána s názvem, který odpovídá názvu vlastnosti základní třídy zadané v inherits atributu oddílu profilu .

Příklady

Následující Web.config souboru určuje profil uživatele, který obsahuje ZipCode vlastnost typu string a RecentSearchList vlastnost typu StringCollection. Vygenerovaná Profile vlastnost aktuálního HttpContext typu bude mít přístupové objekty silného typu pro každou ze zadaných vlastností.

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

Následující ASP.NET stránka přečte a nastaví ZipCode vlastnost určenou pro profil uživatele.

Důležité

Tento příklad obsahuje textové pole, které přijímá vstup uživatele, což je potenciální bezpečnostní hrozba. Ve výchozím nastavení ASP.NET webové stránky ověřte, že uživatelský vstup neobsahuje skript nebo elementy HTML. Další informace najdete v tématu Přehled zneužití skriptů.

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

Poznámky

ASP.NET použije ProfileBase třídu k vytvoření třídy použité pro profil uživatele. Při spuštění aplikace s povoleným profilem uživatele vytvoří ASP.NET novou třídu typu ProfileCommon, která dědí z třídy ProfileBase . Přístupové objekty silného ProfileCommon typu jsou přidány do třídy pro každou vlastnost definovanou v části konfigurace profilu . Přístupové objekty silného ProfileCommon typu třídy volají GetPropertyValue metody ProfileBase a SetPropertyValue základní třídy k načtení a nastavení hodnot vlastností profilu v uvedeném pořadí. Instance ProfileCommon třídy je nastavena jako hodnota Profile vlastnosti pro aplikaci ASP.NET.

Poznámka

Základní třídu použitou ke generování třídy uložené ve Profile vlastnosti lze přepsat pomocí atributu inheritsoddílu profilu konfiguračního souboru. V tomto případě byste zadali vlastní třídu, která dědí ze ProfileBase základní třídy.

Tento konstruktor není určen k použití z kódu aplikace. K vytvoření instance profilu uživatele použijte metodu Create .

Platí pro

Viz také