ProfileSection クラス
アセンブリ: System.Web (system.web.dll 内)
構文
ProfileSection クラスを使用すると、構成ファイルの profile セクションの内容にプログラムからアクセスして変更できます。構成ファイルの profile セクションは、ユーザー プロファイルのスキーマを指定します。実行時に、ASP.NET コンパイル システムは、profile セクションに指定された情報を使用して、ProfileBase から派生した ProfileCommon というクラスを生成します。ProfileCommon クラス定義は、構成ファイルの profile セクションで定義されたプロパティに基づきます。このクラスを使用すると、個々のプロファイルの値にアクセスしたり、値を変更したりできます。このクラスのインスタンスはユーザー プロファイルごとに作成され、個々のプロファイル値にコードから HttpContext.Profile プロパティを使用してアクセスできます。ASP.NET 2.0 に追加されたプロファイル機能の詳細については、「ASP.NET プロファイル プロパティ」を参照してください。
以下は構成ファイルからの抜粋です。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 型を使用する方法を次のコード例に示します。
Imports System 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 ' UsingProfileSection. End Namespace ' Samples.Aspnet.SystemWebConfiguration
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.
System.Configuration.ConfigurationElement
System.Configuration.ConfigurationSection
System.Web.Configuration.ProfileSection
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- ProfileSection クラスのページへのリンク