Bagikan melalui


ProfileBase Kelas

Definisi

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
ProfileBase
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 ProfileCommonbaru , 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)

Berlaku untuk

Lihat juga