ProfileBase.SetPropertyValue(String, Object) Methode

Definitie

Hiermee stelt u de waarde van een profieleigenschap in.

public:
 void SetPropertyValue(System::String ^ propertyName, System::Object ^ propertyValue);
public void SetPropertyValue(string propertyName, object propertyValue);
member this.SetPropertyValue : string * obj -> unit
Public Sub SetPropertyValue (propertyName As String, propertyValue As Object)

Parameters

propertyName
String

De naam van de eigenschap die moet worden ingesteld.

propertyValue
Object

De waarde die moet worden toegewezen aan de eigenschap.

Uitzonderingen

Er is een poging gedaan om een eigenschapswaarde in te stellen op een anoniem profiel waarin het kenmerk van allowAnonymous de eigenschap zich bevindt false.

Er zijn geen eigenschappen gedefinieerd voor het huidige profiel.

– of –

De opgegeven naam van de profieleigenschap bestaat niet in het huidige profiel.

– of –

De provider voor de opgegeven profieleigenschap herkent de opgegeven eigenschap niet.

Er is geprobeerd een waarde in te stellen voor een eigenschap die als alleen-lezen is gemarkeerd.

Er is geprobeerd een waarde toe te wijzen aan een eigenschap met behulp van een niet-compatibel type.

Voorbeelden

In het volgende codevoorbeeld ziet u een ASP.NET pagina die de eigenschap ZipCode leest en instelt die is opgegeven voor het gebruikersprofiel. Zie het voorbeeld van de ProfileBase klasse voor een voorbeeld van een Web.config-bestand dat eigenschappen voor het gebruikersprofiel opgeeft.

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 de SetPropertyValue methode aan om eigenschapswaarden door te geven aan de ProfileProvider gegevensbron die moeten worden opgeslagen.

U kunt de SetPropertyValue methode gebruiken om eigenschapswaarden toe te wijzen in het gebruikersprofiel voor uw toepassing op naam. Waarden zijn niet getypt en typecontrole wordt uitgevoerd tijdens runtime, niet compileertijd. Voor sterk getypte toegang tot profieleigenschapswaarden hebt u toegang tot de eigenschap op naam als lid van de Profile eigenschap die beschikbaar is op elke pagina, bijvoorbeeld Profile.CustomerAddress.

Van toepassing op

Zie ook