ProfileBase ProfileBase ProfileBase ProfileBase Class

Определение

Предоставляет нетипизированный доступ к свойствам профиля и сведениям о нем.Provides untyped access to profile property values and information.

public ref class ProfileBase : System::Configuration::SettingsBase
public class ProfileBase : System.Configuration.SettingsBase
type ProfileBase = class
    inherit SettingsBase
Public Class ProfileBase
Inherits SettingsBase
Наследование
Производный

Примеры

В следующем примере кода показан файл Web. config, в котором указывается профиль ZipCode пользователя, содержащий свойство типа string и RecentSearchList свойство типа StringCollection.The following code example shows a Web.config file that specifies a user profile that contains a ZipCode property of type string and a RecentSearchList property of type StringCollection. Создаваемое Profile свойство Current HttpContext будет иметь строго типизированные методы доступа для каждого из указанных свойств.The generated Profile property of the current HttpContext will have strongly typed accessors for each of the specified properties.

<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>  

В следующем примере показана страница ASP.NET, которая считывает и устанавливает ZipCode свойство, указанное для профиля пользователя.The following example shows an ASP.NET page that reads and sets the ZipCode property specified for the user profile. Прежде чем пытаться запустить этот код, задайте для поставщика значение по умолчанию AspNetSqlProvider в параметрах конфигурации ASP.NET для веб-сайта.Before attempting to run this code, set the provider to the default AspNetSqlProvider in the ASP.NET configuration settings for the Web site.

<%@ 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>

В следующем примере кода определяется класс, наследующий от ProfileBase класса, для создания настраиваемого профиля.The following code example defines a class that inherits from the ProfileBase class to create a custom profile. Тип настраиваемого профиля указывается в inherits атрибуте элемента конфигурации профиля в файле Web. config для приложения.The type of the custom profile is specified in the inherits attribute of the profile configuration element in the Web.config file for an application.

Важно!

Этот пример содержит текстовое поле, которое принимает вводимые пользователем данные, что является потенциальной угрозой безопасности.This example contains a text box that accepts user input, which is a potential security threat. По умолчанию данные, вводимые пользователем на веб-страницах ASP.NET, проверяются на наличие скриптов и HTML-элементов.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.For more information, see Script Exploits Overview.

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

Комментарии

ASP.NET использует ProfileBase класс для создания класса, используемого для профиля пользователя.ASP.NET uses the ProfileBase class to create the class used for the user profile. При запуске приложения с включенным профилем пользователя ASP.NET создает новый класс типа ProfileCommon, который наследуется ProfileBase от класса.When an application that has the user profile enabled is started, ASP.NET creates a new class of type ProfileCommon, which inherits from the ProfileBase class. Строго типизированные методы доступа добавляются в ProfileCommon класс для каждого свойства, определенного в разделе конфигурации профиля .Strongly typed accessors are added to the ProfileCommon class for each property defined in the profile configuration section. Строго ProfileCommon типизированные методы доступа класса GetPropertyValue вызывают метод ProfileBase и SetPropertyValue базового класса для извлечения и установки значений свойств профиля соответственно.The strongly typed accessors of the ProfileCommon class call the GetPropertyValue and SetPropertyValue methods of the ProfileBase base class to retrieve and set profile property values, respectively. Экземпляр ProfileCommon класса задается как значение Profile свойства для приложения ASP.NET.An instance of the ProfileCommon class is set as the value of the Profile property for the ASP.NET application.

Чтобы создать экземпляр профиля пользователя в приложении ASP.NET, рекомендуется использовать Create метод.To create an instance of a user profile in an ASP.NET application, it is recommended that you use the Create method.

Примечания для наследующих объектовNotes to Inheritors

Можно создать пользовательскую реализацию профиля, которая наследуется от ProfileBase абстрактного класса и определяет свойства профиля пользователя, которые не указаны в элементе конфигурации профиля .You can create a custom profile implementation that inherits from the ProfileBase abstract class and defines properties for the user profile that are not specified in the profile configuration element. Можно указать настраиваемый тип профиля пользователя в файле Web. config с помощью inherits атрибута элемента конфигурации профиля , как показано в следующем примере.You can specify a custom user-profile type in the web.config file with the inherits attribute of the profile configuration element, as shown in the following example. Код EmployeeProfile класса включен в раздел «Пример» этого раздела.The code for the EmployeeProfile class is included in the Example section of this topic.

<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>

Конструкторы

ProfileBase() ProfileBase() ProfileBase() ProfileBase()

Создает экземпляр класса ProfileBase.Creates an instance of the ProfileBase class.

Свойства

Context Context Context Context

Возвращает связанный контекст параметров.Gets the associated settings context.

(Inherited from SettingsBase)
IsAnonymous IsAnonymous IsAnonymous IsAnonymous

Получает значение, указывающее, предназначен ли профиль пользователя для анонимного пользователя.Gets a value indicating whether the user profile is for an anonymous user.

IsDirty IsDirty IsDirty IsDirty

Получает значение, указывающее, изменялись ли свойства профиля.Gets a value indicating whether any of the profile properties have been modified.

IsSynchronized IsSynchronized IsSynchronized IsSynchronized

Возвращает значение, указывающее на то, является ли доступ к объекту синхронизированным (потокобезопасным).Gets a value indicating whether access to the object is synchronized (thread safe).

(Inherited from SettingsBase)
Item[String] Item[String] Item[String] Item[String]

Возвращает или задает значение свойства профиля, индексированное по имени свойстваGets or sets a profile property value indexed by the property name.

LastActivityDate LastActivityDate LastActivityDate LastActivityDate

Получает дату и время последнего считывания или изменения профиля.Gets the most recent date and time that the profile was read or modified.

LastUpdatedDate LastUpdatedDate LastUpdatedDate LastUpdatedDate

Получает дату и время последнего или изменения профиля.Gets the most recent date and time that the profile was modified.

Properties Properties Properties Properties

Получает коллекцию объектов SettingsProperty для каждого свойства в профиле.Gets a collection of SettingsProperty objects for each property in the profile.

PropertyValues PropertyValues PropertyValues PropertyValues

Возвращает коллекцию значений свойств параметров.Gets a collection of settings property values.

(Inherited from SettingsBase)
Providers Providers Providers Providers

Возвращает коллекцию поставщиков параметров.Gets a collection of settings providers.

(Inherited from SettingsBase)
UserName UserName UserName UserName

Получает имя пользователя для профиля.Gets the user name for the profile.

Методы

Create(String) Create(String) Create(String) Create(String)

Используется ASP.NET для создания экземпляра профиля для заданного имени пользователя.Used by ASP.NET to create an instance of a profile for the specified user name.

Create(String, Boolean) Create(String, Boolean) Create(String, Boolean) Create(String, Boolean)

Используется ASP.NET для создания экземпляра профиля для заданного имени пользователя.Used by ASP.NET to create an instance of a profile for the specified user name. Принимает параметр, указывающий, прошел ли пользователь проверку подлинности или является анонимным пользователем.Takes a parameter indicating whether the user is authenticated or anonymous.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetProfileGroup(String) GetProfileGroup(String) GetProfileGroup(String) GetProfileGroup(String)

Получает группу свойств, обозначенных именем группы.Gets a group of properties identified by a group name.

GetPropertyValue(String) GetPropertyValue(String) GetPropertyValue(String) GetPropertyValue(String)

Получает значение свойства профиля.Gets the value of a profile property.

GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection) Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection)

Инициализирует внутренние свойства, используемые объектом SettingsBase.Initializes internal properties used by SettingsBase object.

(Inherited from SettingsBase)
Initialize(String, Boolean) Initialize(String, Boolean) Initialize(String, Boolean) Initialize(String, Boolean)

Инициализирует значения свойств профиля и сведения о нем для текущего пользователя.Initializes the profile property values and information for the current user.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Save() Save() Save() Save()

Обновляет источник данных профиля изменившимися значениями свойств профиля.Updates the profile data source with changed profile property values.

SetPropertyValue(String, Object) SetPropertyValue(String, Object) SetPropertyValue(String, Object) SetPropertyValue(String, Object)

Задает значение свойства профиля.Sets the value of a profile property.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Применяется к

Дополнительно