ProfileBase Sınıf
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ği değerlerine ve bilgilerine türlenmemiş erişim sağlar.
public ref class ProfileBase : System::Configuration::SettingsBase
public class ProfileBase : System.Configuration.SettingsBase
type ProfileBase = class
inherit SettingsBase
Public Class ProfileBase
Inherits SettingsBase
- Devralma
- Türetilmiş
Örnekler
Aşağıdaki kod örneği, türünde bir özellik ve türünde string
bir özellik içeren kullanıcı profilini belirten bir StringCollectionZipCode
RecentSearchList
Web.config dosyası gösterir. Geçerlinin HttpContext oluşturulan Profile özelliği, belirtilen özelliklerin her biri için kesin olarak belirlenmiş erişimcilere sahip olacaktır.
<configuration>
<system.web>
<anonymousIdentification enabled="true" />
<profile enabled="true" defaultProvider="SqlProvider" >
<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 örnekte, kullanıcı profili için belirtilen özelliği okuyan ve ayarlayan ZipCode
bir ASP.NET sayfası gösterilmektedir. Bu kodu çalıştırmayı denemeden önce, Web sitesinin ASP.NET yapılandırma ayarlarında sağlayıcıyı varsayılan AspNetSqlProvider
olarak ayarlayın.
<%@ 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şağıdaki kod örneği, özel profil oluşturmak için sınıfından ProfileBase devralan bir sınıfı tanımlar. Özel profilin türü, bir uygulamanın Web.config dosyasındaki profil yapılandırma öğesinin özniteliğinde belirtilirinherits
.
Ö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ış.
using System;
using System.Web.Profile;
namespace Samples.AspNet.Profile
{
public class EmployeeProfile : ProfileBase
{
[SettingsAllowAnonymous(false)]
[ProfileProvider("EmployeeInfoProvider")]
public string Department
{
get { return base["EmployeeDepartment"].ToString(); }
set { base["EmployeeDepartment"] = value; }
}
[SettingsAllowAnonymous(false)]
[ProfileProvider("EmployeeInfoProvider")]
public EmployeeInfo Details
{
get { return (EmployeeInfo)base["EmployeeInfo"]; }
set { base["EmployeeInfo"] = value; }
}
}
public class EmployeeInfo
{
public string Name;
public string Address;
public string Phone;
public string EmergencyContactName;
public string EmergencyContactAddress;
public string EmergencyContactPhone;
}
}
Imports System.Web.Profile
Namespace Samples.AspNet.Profile
Public Class EmployeeProfile
Inherits ProfileBase
<SettingsAllowAnonymous(False)> _
<ProfileProvider("EmployeeInfoProvider")> _
Public Property Department As String
Get
Return MyBase.Item("EmployeeDepartment").ToString()
End Get
Set
MyBase.Item("EmployeeDepartment") = value
End Set
End Property
<SettingsAllowAnonymous(False)> _
<ProfileProvider("EmployeeInfoProvider")> _
Public Property Details As EmployeeInfo
Get
Return CType(MyBase.Item("EmployeeInfo"), EmployeeInfo)
End Get
Set
MyBase.Item("EmployeeInfo") = value
End Set
End Property
End Class
Public Class EmployeeInfo
Public Name As String
Public Address As String
Public Phone As String
Public EmergencyContactName As String
Public EmergencyContactAddress As String
Public EmergencyContactPhone As String
End Class
End Namespace
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 ProfileBase devralan yeni bir tür ProfileCommon
sınıfı oluşturur. Kesin 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 özelliği 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.
bir ASP.NET uygulamasında kullanıcı profilinin bir örneğini oluşturmak için yöntemini kullanmanız Create önerilir.
Devralanlara Notlar
Soyut sınıftan ProfileBase devralan ve profil yapılandırma öğesinde belirtilmeyen kullanıcı profilinin özelliklerini tanımlayan özel bir profil uygulaması oluşturabilirsiniz. Aşağıdaki örnekte gösterildiği gibi, web.config dosyasında profil yapılandırma öğesinin özniteliğiyle inherits
özel bir kullanıcı profili türü belirtebilirsiniz. Sınıfın EmployeeProfile
kodu bu konunun Örnek bölümünde yer alır.
<configuration>
<system.web>
<profile inherits="Samples.AspNet.Profile.EmployeeProfile"
defaultProvider="SqlProvider">
<providers>
<clear />
<add
name="SqlProvider"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="SqlServices"
description="SQL Profile Provider for Sample"/>
<add
name="EmployeeInfoProvider"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="SqlServices"
description="SQL Profile Provider for Employee Info"/>
</providers>
<properties>
<add name="GarmentSize" />
</properties>
</profile>
</system.web>
</configuration>
Oluşturucular
ProfileBase() |
ProfileBase sınıfının bir örneğini oluşturur. |
Özellikler
Context |
İlişkili ayarlar bağlamını alır. (Devralındığı yer: SettingsBase) |
IsAnonymous |
Kullanıcı profilinin anonim bir kullanıcı için olup olmadığını belirten bir değer alır. |
IsDirty |
Profil özelliklerinden herhangi birinin değiştirilip değiştirilmediğini belirten bir değer alır. |
IsSynchronized |
Nesneye erişimin eşitlenip eşitlenmediğini belirten bir değer alır (iş parçacığı güvenli). (Devralındığı yer: SettingsBase) |
Item[String] |
Özellik adına göre dizine alınan bir profil özellik değerini alır veya ayarlar. |
LastActivityDate |
Profilin okunduğu veya değiştirildiği en son tarih ve saati alır. |
LastUpdatedDate |
Profilin değiştirildiği en son tarih ve saati alır. |
Properties |
Profildeki SettingsProperty her özellik için bir nesne koleksiyonu alır. |
PropertyValues |
Ayarlar özellik değerlerinin bir koleksiyonunu alır. (Devralındığı yer: SettingsBase) |
Providers |
Ayarlar sağlayıcılarından oluşan bir koleksiyon alır. (Devralındığı yer: SettingsBase) |
UserName |
Profilin kullanıcı adını alır. |
Yöntemler
Create(String) |
ASP.NET tarafından, belirtilen kullanıcı adı için bir profilin örneğini oluşturmak için kullanılır. |
Create(String, Boolean) |
ASP.NET tarafından, belirtilen kullanıcı adı için bir profilin örneğini oluşturmak için kullanılır. Kullanıcının kimliğinin doğrulandığını veya anonim olduğunu belirten bir parametre alır. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetProfileGroup(String) |
Grup adıyla tanımlanan bir özellik grubunu alır. |
GetPropertyValue(String) |
Profil özelliğinin değerini alır. |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) |
Nesne tarafından SettingsBase kullanılan iç özellikleri başlatır. (Devralındığı yer: SettingsBase) |
Initialize(String, Boolean) |
Geçerli kullanıcı için profil özelliği değerlerini ve bilgilerini başlatır. |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
Save() |
Profil veri kaynağını değiştirilen profil özelliği değerleriyle güncelleştirir. |
SetPropertyValue(String, Object) |
Profil özelliğinin değerini ayarlar. |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |