Поделиться через


ProfileSection Класс

Определение

Класс ProfileSection предоставляет способ программного доступа и изменения profile раздела файла конфигурации. Этот класс не может быть унаследован.

public ref class ProfileSection sealed : System::Configuration::ConfigurationSection
public sealed class ProfileSection : System.Configuration.ConfigurationSection
type ProfileSection = class
    inherit ConfigurationSection
Public NotInheritable Class ProfileSection
Inherits ConfigurationSection
Наследование

Примеры

В следующем фрагменте файла конфигурации показано, как декларативно указать значения для нескольких ProfileSection свойств класса.

<system.web>
  <profile enabled = "true"
     defaultProvider="AspNetSqlProfileProvider">
    <providers>
      <add  name="AspNetSqlProfileProvider"
        type="System.Web.Profile.SqlProfileProvider"
        connectionStringName="LocalSqlServer"
        applicationName="/"
        description="Stores and retrieves profile data from the
local Microsoft SQL Server database" />
    </providers>
    <properties>
      <add name = "FirstName"/>
      <add name = "LastName"/>
      <add name = "FavoriteURLs" type =
        "System.Collection.Specialized.StringCollection, System"
        serializeAs = "Xml"/>
      <add name = "ShoppingCart" type =
        "MyCommerce.ShoppingCart, MyCommerce"
        serializeAs = "Binary"/>
      <group name = "SiteColors" >
        <add name = "BackGround"/>
        <add name = "SideBar"/>
        <add name = "ForeGroundText"/>
        <add name = "ForeGroundBorders"/>
      </group>
      <group name="Forums">
        <add name = "HasAvatar" type="bool" provider="Forums"/>
        <add name = "LastLogin" type="DateTime" provider="Forums"/>
        <add name = "TotalPosts" type="int" provider="Forums"/>
      </group>
    </properties>
  </profile>
</system.web>

В следующем примере кода показано, как использовать ProfileSection тип.

using System;
using System.Collections;
using System.Collections.Specialized;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Configuration;
using System.Web.Configuration;

namespace Samples.Aspnet.SystemWebConfiguration
{
    // Accesses the System.Web.Configuration.ProfileSection members
    // selected by the user.
    class UsingProfileSection
    {
        public static void Main()
        {
            // Process the System.Web.Configuration.ProfileSectionobject.
            try
            {
                // Get the Web application configuration.
                System.Configuration.Configuration configuration = 
                    System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/aspnet");
                
                // Get the section.
                System.Web.Configuration.ProfileSection profileSection = 
                    (System.Web.Configuration.ProfileSection) 
                    configuration.GetSection("system.web/profile");

// Get the current AutomaticSaveEnabled property value.
Console.WriteLine(
    "Current AutomaticSaveEnabled value: '{0}'", profileSection.AutomaticSaveEnabled);

// Set the AutomaticSaveEnabled property to false.
profileSection.AutomaticSaveEnabled = false;

                

// Get the current DefaultProvider property value.
Console.WriteLine(
    "Current DefaultProvider value: '{0}'", profileSection.DefaultProvider);

// Set the DefaultProvider property to "AspNetSqlProvider".
profileSection.DefaultProvider = "AspNetSqlProvider";

                

// Get the current Inherits property value.
Console.WriteLine(
    "Current Inherits value: '{0}'", profileSection.Inherits);

// Set the Inherits property to
// "CustomProfiles.MyCustomProfile, CustomProfiles.dll".
profileSection.Inherits = "CustomProfiles.MyCustomProfile, CustomProfiles.dll";

                

// Display all current root ProfilePropertySettings.
Console.WriteLine("Current Root ProfilePropertySettings:");
int rootPPSCtr = 0;
foreach (ProfilePropertySettings rootPPS in profileSection.PropertySettings)
{
    Console.WriteLine("  {0}: ProfilePropertySetting '{1}'", ++rootPPSCtr,
        rootPPS.Name);
}

// Get and modify a root ProfilePropertySettings object.
Console.WriteLine(
    "Display and modify 'LastReadDate' ProfilePropertySettings:");
ProfilePropertySettings profilePropertySettings =
    profileSection.PropertySettings["LastReadDate"];

// Get the current ReadOnly property value.
Console.WriteLine(
    "Current ReadOnly value: '{0}'", profilePropertySettings.ReadOnly);

// Set the ReadOnly property to true.
profilePropertySettings.ReadOnly = true;

// Get the current AllowAnonymous property value.
Console.WriteLine(
    "Current AllowAnonymous value: '{0}'", profilePropertySettings.AllowAnonymous);

// Set the AllowAnonymous property to true.
profilePropertySettings.AllowAnonymous = true;

// Get the current SerializeAs property value.
Console.WriteLine(
    "Current SerializeAs value: '{0}'", profilePropertySettings.SerializeAs);

// Set the SerializeAs property to SerializationMode.Binary.
profilePropertySettings.SerializeAs = SerializationMode.Binary;

// Get the current Type property value.
Console.WriteLine(
    "Current Type value: '{0}'", profilePropertySettings.Type);

// Set the Type property to "System.DateTime".
profilePropertySettings.Type = "System.DateTime";

// Get the current DefaultValue property value.
Console.WriteLine(
    "Current DefaultValue value: '{0}'", profilePropertySettings.DefaultValue);

// Set the DefaultValue property to "March 16, 2004".
profilePropertySettings.DefaultValue = "March 16, 2004";

// Get the current ProviderName property value.
Console.WriteLine(
    "Current ProviderName value: '{0}'", profilePropertySettings.Provider);

// Set the ProviderName property to "AspNetSqlRoleProvider".
profilePropertySettings.Provider = "AspNetSqlRoleProvider";

// Get the current Name property value.
Console.WriteLine(
    "Current Name value: '{0}'", profilePropertySettings.Name);

// Set the Name property to "LastAccessDate".
profilePropertySettings.Name = "LastAccessDate";

// Display all current ProfileGroupSettings.
Console.WriteLine("Current ProfileGroupSettings:");
int PGSCtr = 0;
foreach (ProfileGroupSettings propGroups in profileSection.PropertySettings.GroupSettings)
{
    Console.WriteLine("  {0}: ProfileGroupSetting '{1}'", ++PGSCtr,
        propGroups.Name);
    int PPSCtr = 0;
    foreach (ProfilePropertySettings props in propGroups.PropertySettings)
    {
        Console.WriteLine("    {0}: ProfilePropertySetting '{1}'", ++PPSCtr,
            props.Name);
    }
}

// Add a new group.
ProfileGroupSettings newPropGroup = new ProfileGroupSettings("Forum");
profileSection.PropertySettings.GroupSettings.Add(newPropGroup);

// Add a new PropertySettings to the group.
ProfilePropertySettings newProp = new ProfilePropertySettings("AvatarImage");
newProp.Type = "System.String, System.dll";
newPropGroup.PropertySettings.Add(newProp);

// Remove a PropertySettings from the group.
newPropGroup.PropertySettings.Remove("AvatarImage");
newPropGroup.PropertySettings.RemoveAt(0);

// Clear all PropertySettings from the group.
newPropGroup.PropertySettings.Clear();

                

// Display all current Providers.
Console.WriteLine("Current Providers:");
int providerCtr = 0;
foreach (ProviderSettings provider in profileSection.Providers)
{
    Console.WriteLine("  {0}: Provider '{1}' of type '{2}'", ++providerCtr, 
        provider.Name, provider.Type);
}

// Add a new provider.
profileSection.Providers.Add(new ProviderSettings("AspNetSqlProvider", "...SqlProfileProvider"));

                

// Get the current Enabled property value.
Console.WriteLine(
    "Current Enabled value: '{0}'", profileSection.Enabled);

// Set the Enabled property to false.
profileSection.Enabled = false;

                
                // Update if not locked.
                if (!profileSection.SectionInformation.IsLocked)
                {
                    configuration.Save();
                    Console.WriteLine("** Configuration updated.");
                }
                else
                {
                    Console.WriteLine("** Could not update, section is locked.");
                }
            }
            catch (System.ArgumentException e)
            {
                // Unknown error.
                Console.WriteLine(
                    "A invalid argument exception detected in UsingProfileSection Main. Check your");
                Console.WriteLine("command line for errors.");
            }
        }
    } // UsingProfileSection class end.
} // Samples.Aspnet.SystemWebConfiguration namespace end.
Imports System.Collections
Imports System.Collections.Specialized
Imports System.IO
Imports System.Text
Imports System.Text.RegularExpressions
Imports System.Configuration
Imports System.Web.Configuration

Namespace Samples.Aspnet.SystemWebConfiguration
    ' Accesses the System.Web.Configuration.ProfileSection members
    ' selected by the user.
    Class UsingProfileSection
        Public Shared Sub Main()
            ' Process the System.Web.Configuration.ProfileSectionobject.
            Try
                ' Get the Web application configuration.
                Dim configuration As System.Configuration.Configuration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/aspnet")
                
                ' Get the section.
                Dim profileSection As System.Web.Configuration.ProfileSection = CType(configuration.GetSection("system.web/profile"), System.Web.Configuration.ProfileSection)

' Get the current AutomaticSaveEnabled property value.
Console.WriteLine( _
    "Current AutomaticSaveEnabled value: '{0}'", profileSection.AutomaticSaveEnabled)

' Set the AutomaticSaveEnabled property to false.
profileSection.AutomaticSaveEnabled = false

                

' Get the current DefaultProvider property value.
Console.WriteLine( _
    "Current DefaultProvider value: '{0}'", profileSection.DefaultProvider)

' Set the DefaultProvider property to "AspNetSqlProvider".
profileSection.DefaultProvider = "AspNetSqlProvider"

                

' Get the current Inherits property value.
Console.WriteLine( _
    "Current Inherits value: '{0}'", profileSection.Inherits)

' Set the Inherits property to
' "CustomProfiles.MyCustomProfile, CustomProfiles.dll".
profileSection.Inherits = "CustomProfiles.MyCustomProfile, CustomProfiles.dll"

                


' Display all current root ProfilePropertySettings.
Console.WriteLine("Current Root ProfilePropertySettings:")
Dim rootPPSCtr As Integer = 0
For Each rootPPS As ProfilePropertySettings In profileSection.PropertySettings
    Console.WriteLine("  {0}: ProfilePropertySetting '{1}'", ++rootPPSCtr, _
        rootPPS.Name)
Next

' Get and modify a root ProfilePropertySettings object.
Console.WriteLine( _
    "Display and modify 'LastReadDate' ProfilePropertySettings:")
Dim profilePropertySettings As ProfilePropertySettings = _
    profileSection.PropertySettings("LastReadDate")

' Get the current ReadOnly property value.
Console.WriteLine( _
    "Current ReadOnly value: '{0}'", profilePropertySettings.ReadOnly)

' Set the ReadOnly property to true.
profilePropertySettings.ReadOnly = true

' Get the current AllowAnonymous property value.
Console.WriteLine( _
    "Current AllowAnonymous value: '{0}'", profilePropertySettings.AllowAnonymous)

' Set the AllowAnonymous property to true.
profilePropertySettings.AllowAnonymous = true

' Get the current SerializeAs property value.
Console.WriteLine( _
    "Current SerializeAs value: '{0}'", profilePropertySettings.SerializeAs)

' Set the SerializeAs property to SerializationMode.Binary.
profilePropertySettings.SerializeAs = SerializationMode.Binary

' Get the current Type property value.
Console.WriteLine( _
    "Current Type value: '{0}'", profilePropertySettings.Type)

' Set the Type property to "System.DateTime".
profilePropertySettings.Type = "System.DateTime"

' Get the current DefaultValue property value.
Console.WriteLine( _
    "Current DefaultValue value: '{0}'", profilePropertySettings.DefaultValue)

' Set the DefaultValue property to "March 16, 2004".
profilePropertySettings.DefaultValue = "March 16, 2004"

' Get the current ProviderName property value.
            Console.WriteLine( _
                "Current ProviderName value: '{0}'", profilePropertySettings.Provider)

' Set the ProviderName property to "AspNetSqlRoleProvider".
            profilePropertySettings.Provider = "AspNetSqlRoleProvider"

' Get the current Name property value.
Console.WriteLine( _
    "Current Name value: '{0}'", profilePropertySettings.Name)

' Set the Name property to "LastAccessDate".
profilePropertySettings.Name = "LastAccessDate"

' Display all current ProfileGroupSettings.
Console.WriteLine("Current ProfileGroupSettings:")
Dim PGSCtr As Integer = 0
For Each propGroups As ProfileGroupSettings In profileSection.PropertySettings.GroupSettings
                    Console.WriteLine("  {0}: ProfileGroupSettings '{1}'", ++PGSCtr, _
        propGroups.Name)
    Dim PPSCtr As Integer = 0
    For Each props As ProfilePropertySettings In propGroups.PropertySettings
        Console.WriteLine("    {0}: ProfilePropertySetting '{1}'", ++PPSCtr, _
            props.Name)
    Next
Next

' Add a new group.
Dim newPropGroup As ProfileGroupSettings = new ProfileGroupSettings("Forum")
profileSection.PropertySettings.GroupSettings.Add(newPropGroup)

' Add a new PropertySettings to the group.
Dim newProp As ProfilePropertySettings = new ProfilePropertySettings("AvatarImage")
newProp.Type = "System.String, System.dll"
newPropGroup.PropertySettings.Add(newProp)

' Remove a PropertySettings from the group.
newPropGroup.PropertySettings.Remove("AvatarImage")
newPropGroup.PropertySettings.RemoveAt(0)

' Clear all PropertySettings from the group.
newPropGroup.PropertySettings.Clear()

                

Console.WriteLine("Current Providers:")
Dim providerCtr As Integer = 0
For Each provider As ProviderSettings In profileSection.Providers
    Console.WriteLine("  {0}: Provider '{1}' of type '{2}'", ++providerCtr, _
        provider.Name, provider.Type)
Next

' Add a new provider.
profileSection.Providers.Add(new ProviderSettings("AspNetSqlProvider", "...SqlProfileProvider"))

                

' Get the current Enabled property value.
Console.WriteLine( _
    "Current Enabled value: '{0}'", profileSection.Enabled)

' Set the Enabled property to false.
profileSection.Enabled = false

                
                ' Update if not locked.
                If Not profileSection.SectionInformation.IsLocked Then
                    configuration.Save()
                    Console.WriteLine("** Configuration updated.")
                Else
                    Console.WriteLine("** Could not update, section is locked.")
                End If
            Catch e As System.ArgumentException
                ' Unknown error.
                Console.WriteLine( _
                    "A invalid argument exception detected in UsingProfileSection Main. Check your")
                Console.WriteLine("command line for errors.")
            End Try
        End Sub
    End Class
    
End Namespace ' Samples.Aspnet.SystemWebConfiguration

Комментарии

Класс ProfileSection предоставляет способ программного доступа и изменения содержимого раздела файла profile конфигурации. Раздел profile файла конфигурации указывает схему для профилей пользователей. Во время выполнения система компиляции ASP.NET использует сведения, указанные в profile разделе, для создания вызываемого класса ProfileCommon, который является производным от ProfileBase. Определение ProfileCommon класса основано на свойствах, определенных в profile разделе файла конфигурации. Класс позволяет получить доступ к отдельным профилям и изменить их значения. Экземпляр этого класса создается для каждого профиля пользователя, и вы можете получить доступ к отдельным значениям профиля в коде HttpContext.Profile с помощью свойства. Дополнительные сведения о функциях профиля, добавленных в ASP.NET 2.0, см. в разделе ASP.NET Обзор свойств профиля.

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

Имя Описание
ProfileSection()

Инициализирует новый экземпляр ProfileSection класса с помощью параметров по умолчанию.

Свойства

Имя Описание
AutomaticSaveEnabled

Возвращает или задает значение, определяющее, сохраняются ли изменения сведений профиля пользователя автоматически при выходе страницы.

CurrentConfiguration

Возвращает ссылку на экземпляр верхнего уровня Configuration , представляющий иерархию конфигурации, к которой принадлежит текущий ConfigurationElement экземпляр.

(Унаследовано от ConfigurationElement)
DefaultProvider

Возвращает или задает имя поставщика профилей по умолчанию.

ElementInformation

ElementInformation Возвращает объект, содержащий не настраиваемую информацию и функциональные возможности ConfigurationElement объекта.

(Унаследовано от ConfigurationElement)
ElementProperty

ConfigurationElementProperty Возвращает объект, представляющий ConfigurationElement сам объект.

(Унаследовано от ConfigurationElement)
Enabled

Возвращает или задает значение, указывающее, включена ли функция профиля ASP.NET.

EvaluationContext

Возвращает объект ContextInformation для объекта ConfigurationElement.

(Унаследовано от ConfigurationElement)
HasContext

Возвращает значение, указывающее, является CurrentConfigurationли null свойство.

(Унаследовано от ConfigurationElement)
Inherits

Возвращает или задает ссылку на тип для пользовательского типа, производный от ProfileBase.

Item[ConfigurationProperty]

Возвращает или задает свойство или атрибут этого элемента конфигурации.

(Унаследовано от ConfigurationElement)
Item[String]

Возвращает или задает свойство, атрибут или дочерний элемент этого элемента конфигурации.

(Унаследовано от ConfigurationElement)
LockAllAttributesExcept

Возвращает коллекцию заблокированных атрибутов.

(Унаследовано от ConfigurationElement)
LockAllElementsExcept

Возвращает коллекцию заблокированных элементов.

(Унаследовано от ConfigurationElement)
LockAttributes

Возвращает коллекцию заблокированных атрибутов.

(Унаследовано от ConfigurationElement)
LockElements

Возвращает коллекцию заблокированных элементов.

(Унаследовано от ConfigurationElement)
LockItem

Возвращает или задает значение, указывающее, заблокирован ли элемент.

(Унаследовано от ConfigurationElement)
Properties

Возвращает коллекцию свойств.

(Унаследовано от ConfigurationElement)
PropertySettings

Возвращает коллекцию RootProfilePropertySettingsCollectionProfilePropertySettings объектов.

Providers

Возвращает коллекцию ProviderSettings объектов.

SectionInformation

SectionInformation Возвращает объект, содержащий не настраиваемую информацию и функциональные возможности ConfigurationSection объекта.

(Унаследовано от ConfigurationSection)

Методы

Имя Описание
DeserializeElement(XmlReader, Boolean)

Считывает XML из файла конфигурации.

(Унаследовано от ConfigurationElement)
DeserializeSection(XmlReader)

Считывает XML из файла конфигурации.

(Унаследовано от ConfigurationSection)
Equals(Object)

Сравнивает текущий ConfigurationElement экземпляр с указанным объектом.

(Унаследовано от ConfigurationElement)
GetHashCode()

Возвращает уникальное значение, представляющее текущий ConfigurationElement экземпляр.

(Унаследовано от ConfigurationElement)
GetRuntimeObject()

Возвращает пользовательский объект при переопределении в производном классе.

(Унаследовано от ConfigurationSection)
GetTransformedAssemblyString(String)

Возвращает преобразованную версию указанного имени сборки.

(Унаследовано от ConfigurationElement)
GetTransformedTypeString(String)

Возвращает преобразованную версию указанного имени типа.

(Унаследовано от ConfigurationElement)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
Init()

Задает объект исходному ConfigurationElement состоянию.

(Унаследовано от ConfigurationElement)
InitializeDefault()

Используется для инициализации набора значений по умолчанию для ConfigurationElement объекта.

(Унаследовано от ConfigurationElement)
IsModified()

Указывает, был ли изменен этот элемент конфигурации с момента последнего сохранения или загрузки при реализации в производном классе.

(Унаследовано от ConfigurationSection)
IsReadOnly()

Возвращает значение, указывающее, доступен ли ConfigurationElement объект только для чтения.

(Унаследовано от ConfigurationElement)
ListErrors(IList)

Добавляет ошибки недопустимого свойства в этом ConfigurationElement объекте и во все подэлементы в переданный список.

(Унаследовано от ConfigurationElement)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
OnDeserializeUnrecognizedAttribute(String, String)

Возвращает значение, указывающее, обнаружен ли неизвестный атрибут во время десериализации.

(Унаследовано от ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Возвращает значение, указывающее, обнаружен ли неизвестный элемент во время десериализации.

(Унаследовано от ConfigurationElement)
OnRequiredPropertyNotFound(String)

Создает исключение, если обязательное свойство не найдено.

(Унаследовано от ConfigurationElement)
PostDeserialize()

Вызывается после десериализации.

(Унаследовано от ConfigurationElement)
PreSerialize(XmlWriter)

Вызывается перед сериализацией.

(Унаследовано от ConfigurationElement)
Reset(ConfigurationElement)

Сбрасывает внутреннее состояние ConfigurationElement объекта, включая блокировки и коллекции свойств.

(Унаследовано от ConfigurationElement)
ResetModified()

Сбрасывает значение IsModified() метода false на момент реализации в производном классе.

(Унаследовано от ConfigurationSection)
SerializeElement(XmlWriter, Boolean)

Записывает содержимое этого элемента конфигурации в файл конфигурации при реализации в производном классе.

(Унаследовано от ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Создает XML-строку, содержащую несоединённое представление ConfigurationSection объекта в виде одного раздела для записи в файл.

(Унаследовано от ConfigurationSection)
SerializeToXmlElement(XmlWriter, String)

Записывает внешние теги этого элемента конфигурации в файл конфигурации при реализации в производном классе.

(Унаследовано от ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Задает свойству указанное значение.

(Унаследовано от ConfigurationElement)
SetReadOnly()

IsReadOnly() Задает свойство для ConfigurationElement объекта и всех вложенных элементов.

(Унаследовано от ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Указывает, следует ли сериализовать указанный элемент при сериализации иерархии объектов конфигурации для указанной целевой версии .NET Framework.

(Унаследовано от ConfigurationSection)
ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Указывает, следует ли сериализовать указанное свойство, если иерархия объектов конфигурации сериализуется для указанной целевой версии .NET Framework.

(Унаследовано от ConfigurationSection)
ShouldSerializeSectionInTargetVersion(FrameworkName)

Указывает, следует ли сериализовать текущий ConfigurationSection экземпляр при сериализации иерархии объектов конфигурации для указанной целевой версии .NET Framework.

(Унаследовано от ConfigurationSection)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Изменяет объект для удаления всех значений ConfigurationElement , которые не должны быть сохранены.

(Унаследовано от ConfigurationElement)

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

См. также раздел