ProfileBase.SetPropertyValue(String, Object) Yöntem

Tanım

Profil özelliğinin değerini ayarlar.

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)

Parametreler

propertyName
String

Ayarlanacak özelliğin adı.

propertyValue
Object

Özelliğe atanacak değer.

Özel durumlar

Anonim profilde özelliğin özniteliğinin falseolduğu bir özellik allowAnonymous değeri ayarlama girişiminde bulunuldu.

Geçerli profil için tanımlı özellik yok.

-veya-

Belirtilen profil özellik adı geçerli profilde yok.

-veya-

Belirtilen profil özelliğinin sağlayıcısı belirtilen özelliği tanımadı.

Salt okunur olarak işaretlenmiş bir özellikte değer ayarlama girişiminde bulunuldu.

Uyumsuz bir tür kullanılarak bir özelliğe değer atama girişiminde bulunuldu.

Örnekler

Aşağıdaki kod örneği, kullanıcı profili için belirtilen özelliği okuyan ve ayarlayan ZipCode bir ASP.NET sayfasını gösterir. Kullanıcı profilinin özelliklerini belirten bir Web.config dosyası örneği için sınıf için ProfileBase sağlanan örne bakın.

Önemli

Bu örnek, olası bir güvenlik tehdidi olan kullanıcı girişini kabul eden bir metin kutusu içerir. Varsayılan olarak, ASP.NET Web sayfaları kullanıcı girişinin betik veya HTML öğeleri içermediğini doğrular. Daha fazla bilgi için bkz. Betik Açıklarına Genel Bakış.

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

Açıklamalar

ASP.NET, kullanıcı profili için kullanılan sınıfı oluşturmak için sınıfını kullanır ProfileBase . Kullanıcı profilinin etkinleştirildiği bir uygulama başlatıldığında, ASP.NET sınıfından ProfileBase devralan yeni bir tür ProfileCommonsınıfı oluşturur. Kesin olarak türü belirlenmiş erişimciler, profil yapılandırması bölümünde tanımlanan her özellik için sınıfına eklenirProfileCommon. Sınıfın ProfileCommon kesin olarak türü belirlenmiş erişimciler, veri kaynağında SetPropertyValue depolanacak özellik değerlerini 'ye ProfileProvider geçirmek için yöntemini çağırır.

Uygulamanızın SetPropertyValue kullanıcı profilindeki özellik değerlerini ada göre atamak için yöntemini kullanabilirsiniz. Değerler yazılmamıştır ve tür denetimi derleme zamanında değil çalışma zamanında yapılır. Profil özelliği değerlerine kesin olarak yazılan erişim için, özelliğine ada göre her sayfada bulunan özelliğin Profile bir üyesi olarak erişebilirsiniz; örneğin, Profile.CustomerAddress.

Şunlara uygulanır

Ayrıca bkz.