Freigeben über


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

Das folgende Codebeispiel zeigt eine ASP.NET Seite, die die für das ZipCode Benutzerprofil angegebene Eigenschaft liest und festlegt. Ein Beispiel für eine Web.config-Datei, die Eigenschaften für das Benutzerprofil angibt, finden Sie im Für die ProfileBase -Klasse bereitgestellten Beispiel.

Wichtig

Dieses Beispiel enthält ein Textfeld, das Benutzereingaben akzeptiert, was eine potenzielle Sicherheitsbedrohung darstellt. 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 ProfileBase -Klasse, um die klasse zu erstellen, die für das Benutzerprofil verwendet wird. Wenn eine Anwendung gestartet wird, für die das Benutzerprofil aktiviert ist, erstellt ASP.NET eine neue Klasse vom Typ ProfileCommon, die von der ProfileBase -Klasse erbt. Stark typisierte Accessors werden der ProfileCommon Klasse für jede eigenschaft hinzugefügt, die im Abschnitt profilkonfiguration definiert ist. Die stark typisierten Accessoren der ProfileCommon -Klasse rufen die SetPropertyValue -Methode auf, um Eigenschaftswerte an das zu übergeben, das ProfileProvider in der Datenquelle gespeichert werden soll.

Sie können die SetPropertyValue -Methode verwenden, um Eigenschaftswerte im Benutzerprofil Ihrer Anwendung nach Name zuzuweisen. Werte sind nicht typisiert, und die Typüberprüfung erfolgt zur Laufzeit, nicht zur Kompilierzeit. Für stark typisierten Zugriff auf Profileigenschaftenwerte können Sie auf die Eigenschaft anhand des Namens als Member der Eigenschaft zugreifen, die Profile auf jeder Seite verfügbar ist, z. B Profile.CustomerAddress. .

Gilt für:

Weitere Informationen