ProfileBase Oluşturucu
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.
ProfileBase sınıfının bir örneğini oluşturur.
public:
ProfileBase();
public ProfileBase ();
Public Sub New ()
Özel durumlar
enabled
Web.config dosyasının profil bölümünün özniteliğidirfalse
.
Web.config dosyasının profil bölümünde belirtilen özellik türü oluşturulamadı.
-veya-
allowAnonymous
Web.config dosyasının profil bölümündeki bir özelliğin özniteliği olaraktrue
, anonymousIdentification> öğesinin< özniteliği ise olarak false
enabled
ayarlanır.
-veya-
serializeAs
Web.config dosyasının profil bölümündeki bir özelliğin özniteliği olarak ayarlanır Binary ve IsSerializable belirtilen type
özelliği döndürürfalse
.
-veya-
Profil özelliğinin özniteliği kullanılarak provider
belirtilen sağlayıcının adı koleksiyonda Providers bulunamadı.
-veya-
type
Profil özelliği için belirtilen bulunamadı.
-veya-
Profil özelliği, profil bölümünün özniteliğinde inherits
belirtilen temel sınıftaki bir özellik adıyla eşleşen bir adla belirtildi.
Örnekler
Aşağıdaki Web.config dosyası, türünde bir özellik ve türünde string
bir ZipCode
özellik StringCollectioniçeren bir RecentSearchList
kullanıcı profilini belirtir. Geçerlinin HttpContext oluşturulan Profile özelliği, belirtilen özelliklerin her biri için kesin olarak belirtilmiş erişimcilere sahip olacaktır.
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
</connectionStrings>
<system.web>
<anonymousIdentification enabled="true" />
<profile defaultProvider="SqlProvider" >
<providers>
<add
name="SqlProvider"
connectionStringName="SqlServices"
applicationName="ProfileBaseApplication"
type="System.Web.Profile.SqlProfileProvider" />
</providers>
<properties>
<add name="ZipCode" allowAnonymous="true" />
<add name="RecentSearchList"
type="System.Collections.Specialized.StringCollection"
serializeAs="Xml"
allowAnonymous="true" />
</properties>
</profile>
</system.web>
</configuration>
Aşağıdaki ASP.NET sayfası, kullanıcı profili için belirtilen özelliği okur ve ayarlar ZipCode
.
Ö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 ProfileCommon
sı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şimcileri, sırasıyla profil özellik değerlerini almak ve ayarlamak için temel sınıfın ProfileBase ve SetPropertyValue yöntemlerini çağırırGetPropertyValue. sınıfının bir örneği ProfileCommon
, ASP.NET uygulamasının Profile özelliğinin değeri olarak ayarlanır.
Not
özelliğinde Profile depolanan sınıfı oluşturmak için kullanılan temel sınıf, yapılandırma dosyasının inherits
profil bölümünün özniteliği kullanılarak geçersiz kılınabilir. Bu durumda, temel sınıftan ProfileBase devralan özel bir sınıf belirtirsiniz.
Bu oluşturucu, uygulama kodundan kullanılmak üzere tasarlanmamıştır. Kullanıcı profilinin bir örneğini oluşturmak için yöntemini kullanın Create .