ProfileBase Sınıf

Tanım

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
ProfileBase
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 StringCollectionZipCodeRecentSearchList 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 ProfileCommonsı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.

ASP.NET bir uygulamada 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ştirmeler.

SetPropertyValue(String, Object)

Profil özelliğinin değerini ayarlar.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.