ProfileBase Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyediakan akses yang tidak dititik ke nilai dan informasi properti profil.
public ref class ProfileBase : System::Configuration::SettingsBase
public class ProfileBase : System.Configuration.SettingsBase
type ProfileBase = class
inherit SettingsBase
Public Class ProfileBase
Inherits SettingsBase
- Warisan
- Turunan
Contoh
Contoh kode berikut menunjukkan file Web.config yang menentukan profil pengguna yang berisi ZipCode
properti jenis string
dan RecentSearchList
properti jenis StringCollection. Properti yang dihasilkan Profile dari saat ini HttpContext akan memiliki aksesor yang sangat ditik untuk setiap properti yang ditentukan.
<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>
Contoh berikut menunjukkan halaman ASP.NET yang membaca dan mengatur ZipCode
properti yang ditentukan untuk profil pengguna. Sebelum mencoba menjalankan kode ini, atur penyedia ke default AspNetSqlProvider
di pengaturan konfigurasi ASP.NET untuk situs Web.
<%@ 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>
Contoh kode berikut menentukan kelas yang mewarisi dari ProfileBase kelas untuk membuat profil kustom. Jenis profil kustom ditentukan dalam inherits
atribut elemen konfigurasi profil dalam file Web.config untuk aplikasi.
Penting
Contoh ini berisi kotak teks yang menerima input pengguna, yang merupakan potensi ancaman keamanan. Secara default, ASP.NET halaman Web memvalidasi bahwa input pengguna tidak menyertakan elemen skrip atau HTML. Untuk informasi selengkapnya, lihat Gambaran Umum Eksploitasi Skrip.
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
Keterangan
ASP.NET menggunakan ProfileBase kelas untuk membuat kelas yang digunakan untuk profil pengguna. Ketika aplikasi yang mengaktifkan profil pengguna dimulai, ASP.NET membuat kelas jenis ProfileCommon
baru , yang mewarisi dari ProfileBase kelas . Aksesor yang sangat ditik ditambahkan ke ProfileCommon
kelas untuk setiap properti yang ditentukan di bagian konfigurasi profil . Pengakses ProfileCommon
kelas yang sangat ditik memanggil GetPropertyValue metode dan SetPropertyValue dari ProfileBase kelas dasar untuk mengambil dan mengatur nilai properti profil. Instans ProfileCommon
kelas ditetapkan sebagai nilai Profile properti untuk aplikasi ASP.NET.
Untuk membuat instans profil pengguna di aplikasi ASP.NET, disarankan agar Anda menggunakan metode .Create
Catatan Bagi Inheritor
Anda dapat membuat implementasi profil kustom yang mewarisi dari ProfileBase kelas abstrak dan menentukan properti untuk profil pengguna yang tidak ditentukan dalam elemen konfigurasi profil . Anda dapat menentukan jenis profil pengguna kustom dalam file web.config dengan inherits
atribut elemen konfigurasi profil , seperti yang ditunjukkan dalam contoh berikut. Kode untuk EmployeeProfile
kelas disertakan di bagian Contoh topik ini.
<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>
Konstruktor
ProfileBase() |
Membuat instans ProfileBase kelas . |
Properti
Context |
Mendapatkan konteks pengaturan terkait. (Diperoleh dari SettingsBase) |
IsAnonymous |
Mendapatkan nilai yang menunjukkan apakah profil pengguna adalah untuk pengguna anonim. |
IsDirty |
Mendapatkan nilai yang menunjukkan apakah salah satu properti profil telah dimodifikasi. |
IsSynchronized |
Mendapatkan nilai yang menunjukkan apakah akses ke objek disinkronkan (utas aman). (Diperoleh dari SettingsBase) |
Item[String] |
Mendapatkan atau mengatur nilai properti profil yang diindeks oleh nama properti. |
LastActivityDate |
Mendapatkan tanggal dan waktu terakhir profil dibaca atau dimodifikasi. |
LastUpdatedDate |
Mendapatkan tanggal dan waktu terbaru profil dimodifikasi. |
Properties |
Mendapatkan kumpulan SettingsProperty objek untuk setiap properti di profil. |
PropertyValues |
Mendapatkan kumpulan nilai properti pengaturan. (Diperoleh dari SettingsBase) |
Providers |
Mendapatkan kumpulan penyedia pengaturan. (Diperoleh dari SettingsBase) |
UserName |
Mendapatkan nama pengguna untuk profil. |
Metode
Create(String) |
Digunakan oleh ASP.NET untuk membuat instans profil untuk nama pengguna yang ditentukan. |
Create(String, Boolean) |
Digunakan oleh ASP.NET untuk membuat instans profil untuk nama pengguna yang ditentukan. Mengambil parameter yang menunjukkan apakah pengguna diautentikasi atau anonim. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetProfileGroup(String) |
Mendapatkan sekelompok properti yang diidentifikasi dengan nama grup. |
GetPropertyValue(String) |
Mendapatkan nilai properti profil. |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) |
Menginisialisasi properti internal yang digunakan oleh SettingsBase objek. (Diperoleh dari SettingsBase) |
Initialize(String, Boolean) |
Menginisialisasi nilai dan informasi properti profil untuk pengguna saat ini. |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
Save() |
Memperbarui sumber data profil dengan nilai properti profil yang diubah. |
SetPropertyValue(String, Object) |
Mengatur nilai properti profil. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |