ProfileBase.SetPropertyValue(String, Object) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
Ayarlanacağı özelliğin adı.
- propertyValue
- Object
Özelliğine atanacak değer.
Özel durumlar
Özelliğin özniteliğinin allowAnonymousolduğu anonim bir profilde özellik false 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 bir 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 ZipCode özelliğini okuyan ve ayarlayan bir ASP.NET sayfası 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.
Important
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ı profili etkinleştirilmiş bir uygulama başlatıldığında, ASP.NET sınıfından ProfileCommon devralan yeni bir tür ProfileBasesınıfı oluşturur. Kesin olarak belirlenmiş erişimcilerProfileCommon yapılandırması bölümünde tanımlanan her özellik için sınıfına eklenir. Sınıfın ProfileCommon kesin olarak türü belirlenmiş erişimcileri, veri kaynağında SetPropertyValue depolanacak özellik değerlerini'ne 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ğe adıyla her sayfada kullanılabilen özelliğin Profile bir üyesi olarak erişebilirsiniz; örneğin, Profile.CustomerAddress.