ProfileBase.SetPropertyValue(String, Object) Methode

Definition

Legt den Wert einer Profileigenschaft fest.

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)

Parameter

propertyName
String

Der Name der festzulegenden Eigenschaft.

propertyValue
Object

Der Wert, der der Eigenschaft zugewiesen werden soll.

Ausnahmen

Es wurde versucht, einen Eigenschaftswert für ein anonymes Profil einer Eigenschaft festzulegen, bei der das allowAnonymous-Attribut false ist.

Für das aktuelle Profil sind keine Eigenschaften definiert.

- oder -

Der angegebene Profileigenschaftenname ist im aktuellen Profil nicht vorhanden.

- oder -

Der Anbieter für die angegebene Profileigenschaft hat die angegebene Eigenschaft nicht erkannt.

Es wurde versucht, einen Wert für eine Eigenschaft festzulegen, die als schreibgeschützt gekennzeichnet war.

Es wurde versucht, einer Eigenschaft mit einem nicht kompatiblen Typ einen Wert zuzuweisen.

Beispiele

Im folgenden Codebeispiel wird eine ASP.NET Seite angezeigt, die die ZipCode für das Benutzerprofil angegebene Eigenschaft liest und legt sie fest. Ein Beispiel für eine Web.config-Datei, die Eigenschaften für das Benutzerprofil angibt, finden Sie im Beispiel, das für die ProfileBase Klasse bereitgestellt wird.

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. Die stark eingegebenen Zugriffsoren der ProfileCommon Klasse rufen die SetPropertyValue Methode auf, um Eigenschaftswerte an die ProfileProvider Datenquelle zu übergeben.

Sie können die SetPropertyValue Methode verwenden, um Eigenschaftenwerte im Benutzerprofil für Ihre Anwendung nach Name zuzuweisen. Werte sind nicht eingegeben, und die Typüberprüfung erfolgt zur Laufzeit, nicht zur Kompilierungszeit. Für einen stark eingegebenen Zugriff auf Profileigenschaftenwerte können Sie auf die Eigenschaft mithilfe des Namens als Mitglied der Profile Eigenschaft zugreifen, die auf jeder Seite verfügbar ist, z Profile.CustomerAddress. B. .

Gilt für

Siehe auch