Jazyk

ProfileBase.GetPropertyValue(String) Metoda

Definice

Získá hodnotu vlastnosti profilu.

public:
 System::Object ^ GetPropertyValue(System::String ^ propertyName);
public object GetPropertyValue(string propertyName);
member this.GetPropertyValue : string -> obj
Public Function GetPropertyValue (propertyName As String) As Object

Parametry

propertyName
String

Název vlastnosti profilu.

Návraty

Hodnota zadané vlastnosti profilu, která je zadána jako object.

Výjimky

Došlo k pokusu o nastavení hodnoty vlastnosti v anonymním profilu, kde je allowAnonymousatribut vlastnosti false .

Pro aktuální profil nejsou definovány žádné vlastnosti.

nebo

Zadaný název vlastnosti profilu v aktuálním profilu neexistuje.

nebo

Zprostředkovatel pro zadanou vlastnost profilu nerozpoznal zadanou vlastnost.

Příklady

Následující příklad kódu ukazuje ASP.NET stránku, která čte a nastaví ZipCode vlastnost zadaná pro profil uživatele. Příklad souboru Web.config, který určuje vlastnosti profilu uživatele, najdete v příkladu zadaném ProfileBase pro třídu.

Important

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ěřují, že vstup uživatele neobsahuje skripty ani elementy HTML. Další informace naleznete 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žívá ProfileBase třídu k vytvoření třídy použité pro profil uživatele. Když je spuštěna aplikace s povoleným profilem uživatele, ASP.NET vytvoří novou třídu typu ProfileCommon, která dědí z ProfileBase třídy. Přístupové objekty silného ProfileCommon typu se přidají do třídy pro každou vlastnost definovanou v oddílu konfigurace profilu . Silně typové přístupové objekty ProfileCommon třídy volají metodu GetPropertyValue pro načtení netypových hodnot z ProfileProvider vygenerovaného přístupového objektu pak přetypuje jako zadaný typ a vrátí jako hodnotu vlastnosti.

Tuto metodu GetPropertyValue můžete použít k načtení hodnot vlastností profilu uživatele pro vaši aplikaci podle názvu. Vrácené hodnoty jsou nezatypované a musí být při načtení přetypovány jako konkrétní typ objektu. V případě silného přístupu k hodnotám vlastností profilu můžete k vlastnosti přistupovat podle názvu jako člena vlastnosti Profilu, která je k dispozici například Profile.CustomerAddressna každé stránce.

Platí pro

Viz také