Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Profile / ProfileManager.cs / 1305376 / ProfileManager.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * ProfileManager * * Copyright (c) 2002 Microsoft Corporation */ namespace System.Web.Profile { using System.Security.Principal; using System.Security.Permissions; using System.Collections; using System.Collections.Specialized; using System.Web.Configuration; using System.Web.Util; using System.Web.Security; using System.Web.Compilation; using System.Configuration; using System.Configuration.Provider; using System.Reflection; using System.CodeDom; using System.Web.Hosting; public static class ProfileManager { private static ProfilePropertySettingsCollection s_dynamicProperties = new ProfilePropertySettingsCollection(); internal static ProfilePropertySettingsCollection DynamicProfileProperties { get { return s_dynamicProperties; } } public static void AddDynamicProfileProperty(ProfilePropertySettings property) { BuildManager.ThrowIfPreAppStartNotRunning(); s_dynamicProperties.Add(property); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static bool DeleteProfile(string username) { SecUtility.CheckParameter( ref username, true, true, true, 0, "username" ); return (Provider.DeleteProfiles(new string [] {username}) != 0); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static int DeleteProfiles(ProfileInfoCollection profiles) { if( profiles == null ) { throw new ArgumentNullException( "profiles" ); } if ( profiles.Count < 1 ) { throw new ArgumentException( SR.GetString( SR.Parameter_collection_empty, "profiles" ), "profiles" ); } foreach (ProfileInfo pi in profiles) { string username = pi.UserName; SecUtility.CheckParameter(ref username, true, true, true, 0, "UserName"); } return Provider.DeleteProfiles(profiles); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static int DeleteProfiles(string[] usernames) { SecUtility.CheckArrayParameter( ref usernames, true, true, true, 0, "usernames"); return Provider.DeleteProfiles(usernames); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static int DeleteInactiveProfiles(ProfileAuthenticationOption authenticationOption, DateTime userInactiveSinceDate) { return Provider.DeleteInactiveProfiles(authenticationOption, userInactiveSinceDate); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static int GetNumberOfProfiles(ProfileAuthenticationOption authenticationOption) { return Provider.GetNumberOfInactiveProfiles(authenticationOption, DateTime.Now.AddDays(1)); // } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static int GetNumberOfInactiveProfiles(ProfileAuthenticationOption authenticationOption, DateTime userInactiveSinceDate) { return Provider.GetNumberOfInactiveProfiles(authenticationOption, userInactiveSinceDate); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static ProfileInfoCollection GetAllProfiles(ProfileAuthenticationOption authenticationOption) { int totalRecords; return Provider.GetAllProfiles(authenticationOption, 0, Int32.MaxValue, out totalRecords); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static ProfileInfoCollection GetAllProfiles(ProfileAuthenticationOption authenticationOption, int pageIndex, int pageSize, out int totalRecords) { return Provider.GetAllProfiles(authenticationOption, pageIndex, pageSize, out totalRecords); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static ProfileInfoCollection GetAllInactiveProfiles(ProfileAuthenticationOption authenticationOption, DateTime userInactiveSinceDate) { int totalRecords; return Provider.GetAllInactiveProfiles(authenticationOption, userInactiveSinceDate, 0, Int32.MaxValue, out totalRecords); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static ProfileInfoCollection GetAllInactiveProfiles(ProfileAuthenticationOption authenticationOption, DateTime userInactiveSinceDate, int pageIndex, int pageSize, out int totalRecords) { return Provider.GetAllInactiveProfiles(authenticationOption, userInactiveSinceDate, pageIndex, pageSize, out totalRecords); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static ProfileInfoCollection FindProfilesByUserName(ProfileAuthenticationOption authenticationOption, string usernameToMatch) { SecUtility.CheckParameter( ref usernameToMatch, true, true, false, 0, "usernameToMatch" ); int totalRecords; return Provider.FindProfilesByUserName(authenticationOption, usernameToMatch, 0, Int32.MaxValue, out totalRecords); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static ProfileInfoCollection FindProfilesByUserName (ProfileAuthenticationOption authenticationOption, string usernameToMatch, int pageIndex, int pageSize, out int totalRecords) { if ( pageIndex < 0 ) { throw new ArgumentException(SR.GetString(SR.PageIndex_bad), "pageIndex"); } if ( pageSize < 1 ) { throw new ArgumentException(SR.GetString(SR.PageSize_bad), "pageSize"); } SecUtility.CheckParameter( ref usernameToMatch, true, true, false, 0, "usernameToMatch" ); return Provider.FindProfilesByUserName(authenticationOption, usernameToMatch, pageIndex, pageSize, out totalRecords); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static ProfileInfoCollection FindInactiveProfilesByUserName(ProfileAuthenticationOption authenticationOption, string usernameToMatch, DateTime userInactiveSinceDate) { SecUtility.CheckParameter( ref usernameToMatch, true, true, false, 0, "usernameToMatch" ); int totalRecords; return Provider.FindInactiveProfilesByUserName(authenticationOption, usernameToMatch, userInactiveSinceDate, 0, Int32.MaxValue, out totalRecords); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static ProfileInfoCollection FindInactiveProfilesByUserName(ProfileAuthenticationOption authenticationOption, string usernameToMatch, DateTime userInactiveSinceDate, int pageIndex, int pageSize, out int totalRecords) { if ( pageIndex < 0 ) { throw new ArgumentException(SR.GetString(SR.PageIndex_bad), "pageIndex"); } if ( pageSize < 1 ) { throw new ArgumentException(SR.GetString(SR.PageSize_bad), "pageSize"); } SecUtility.CheckParameter( ref usernameToMatch, true, true, false, 0, "usernameToMatch" ); return Provider.FindInactiveProfilesByUserName(authenticationOption, usernameToMatch, userInactiveSinceDate, pageIndex, pageSize, out totalRecords); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // Properties ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static bool Enabled { get { // if (!s_Initialized && !s_InitializedEnabled) { InitializeEnabled(false); } return s_Enabled; } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static string ApplicationName { get { return Provider.ApplicationName; } set { Provider.ApplicationName = value; } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static bool AutomaticSaveEnabled { get { HttpRuntime.CheckAspNetHostingPermission(AspNetHostingPermissionLevel.Low, SR.Feature_not_supported_at_this_level); // WOS #1544130: Don't initialize providers when getting this property, because it is called in ProfileModule.Init InitializeEnabled(false); return s_AutomaticSaveEnabled; } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static ProfileProvider Provider { get { HttpRuntime.CheckAspNetHostingPermission(AspNetHostingPermissionLevel.Low, SR.Feature_not_supported_at_this_level); Initialize(true); if (s_Provider == null) { throw new InvalidOperationException(SR.GetString(SR.Profile_default_provider_not_found)); } return s_Provider; } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static ProfileProviderCollection Providers { get { HttpRuntime.CheckAspNetHostingPermission(AspNetHostingPermissionLevel.Low, SR.Feature_not_supported_at_this_level); Initialize(true); return s_Providers; } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // Private stuff private static void InitializeEnabled(bool initProviders) { if (!s_Initialized || !s_InitializedProviders || !s_InitializeDefaultProvider) { lock (s_Lock) { if (!s_Initialized || !s_InitializedProviders || !s_InitializeDefaultProvider) { try { ProfileSection config = MTConfigUtil.GetProfileAppConfig(); if (!s_InitializedEnabled) { s_Enabled = config.Enabled && HttpRuntime.HasAspNetHostingPermission(AspNetHostingPermissionLevel.Low); s_AutomaticSaveEnabled = s_Enabled && config.AutomaticSaveEnabled; s_InitializedEnabled = true; } if (initProviders && s_Enabled && (!s_InitializedProviders || !s_InitializeDefaultProvider)) { InitProviders(config); } } catch (Exception e) { s_InitException = e; } s_Initialized = true; } } } } private static void Initialize(bool throwIfNotEnabled) { InitializeEnabled(true); if (s_InitException != null) throw s_InitException; if (throwIfNotEnabled && !s_Enabled) throw new ProviderException(SR.GetString(SR.Profile_not_enabled)); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// static private void InitProviders(ProfileSection config) { if (!s_InitializedProviders) { s_Providers = new ProfileProviderCollection(); if (config.Providers != null) { ProvidersHelper.InstantiateProviders(config.Providers, s_Providers, typeof(ProfileProvider)); } s_InitializedProviders = true; } bool canInitializeDefaultProvider = (!HostingEnvironment.IsHosted || BuildManager.PreStartInitStage == PreStartInitStage.AfterPreStartInit); if (!s_InitializeDefaultProvider && canInitializeDefaultProvider) { s_Providers.SetReadOnly(); if (config.DefaultProvider == null) throw new ProviderException(SR.GetString(SR.Profile_default_provider_not_specified)); s_Provider = (ProfileProvider)s_Providers[config.DefaultProvider]; if (s_Provider == null) throw new ConfigurationErrorsException(SR.GetString(SR.Profile_default_provider_not_found), config.ElementInformation.Properties["providers"].Source, config.ElementInformation.Properties["providers"].LineNumber); s_InitializeDefaultProvider = true; } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// private static ProfileProvider s_Provider; private static ProfileProviderCollection s_Providers; private static bool s_Enabled; private static bool s_Initialized; private static bool s_InitializedProviders; private static bool s_InitializeDefaultProvider; private static object s_Lock = new object(); private static Exception s_InitException; private static bool s_InitializedEnabled; private static bool s_AutomaticSaveEnabled; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ErrorsHelper.cs
- Attributes.cs
- PictureBox.cs
- XmlSchemaType.cs
- DataTableReaderListener.cs
- InternalException.cs
- DataSourceBooleanViewSchemaConverter.cs
- CodeAccessPermission.cs
- TransactedBatchingBehavior.cs
- DisableDpiAwarenessAttribute.cs
- TakeQueryOptionExpression.cs
- ReadOnlyCollectionBase.cs
- WebPartHelpVerb.cs
- PartialCachingAttribute.cs
- ProcessProtocolHandler.cs
- SecurityStandardsManager.cs
- FixedPageProcessor.cs
- ScriptRef.cs
- SubMenuStyleCollectionEditor.cs
- WorkflowInstanceProxy.cs
- SmtpCommands.cs
- VoiceObjectToken.cs
- xmlsaver.cs
- BackStopAuthenticationModule.cs
- PartialCachingControl.cs
- ListViewContainer.cs
- AuthorizationSection.cs
- BufferedReadStream.cs
- MappingSource.cs
- DecoderReplacementFallback.cs
- Helpers.cs
- ToolStripControlHost.cs
- DataGridViewCellFormattingEventArgs.cs
- SafeFileMappingHandle.cs
- RightsManagementEncryptionTransform.cs
- QilPatternFactory.cs
- ContainerParagraph.cs
- GridItem.cs
- Collection.cs
- AssemblyAttributesGoHere.cs
- QualifiedCellIdBoolean.cs
- WrapPanel.cs
- ExpressionDumper.cs
- DebugHandleTracker.cs
- AccessControlEntry.cs
- WebControlAdapter.cs
- AnnotationResource.cs
- ApplicationInfo.cs
- ExecutionEngineException.cs
- ProxyHwnd.cs
- CustomErrorsSection.cs
- SafeFileMappingHandle.cs
- TagPrefixCollection.cs
- EngineSiteSapi.cs
- XmlNamespaceDeclarationsAttribute.cs
- EntitySetRetriever.cs
- TextBoxBase.cs
- XsdCachingReader.cs
- FormsAuthenticationEventArgs.cs
- NavigationProperty.cs
- MdiWindowListStrip.cs
- BlockCollection.cs
- DNS.cs
- OleDbCommandBuilder.cs
- _ListenerResponseStream.cs
- MeshGeometry3D.cs
- _DigestClient.cs
- DataSourceCollectionBase.cs
- EmptyQuery.cs
- ItemMap.cs
- SmtpDateTime.cs
- FamilyMapCollection.cs
- CodeAccessSecurityEngine.cs
- PeerHopCountAttribute.cs
- CodeTypeParameterCollection.cs
- Label.cs
- PersonalizablePropertyEntry.cs
- GeneralTransform3D.cs
- PropertyPanel.cs
- DesignTimeSiteMapProvider.cs
- AccessKeyManager.cs
- BindingManagerDataErrorEventArgs.cs
- TiffBitmapEncoder.cs
- EntityParameterCollection.cs
- PageRequestManager.cs
- HMACMD5.cs
- ExpressionBuilder.cs
- COM2PropertyBuilderUITypeEditor.cs
- SmiGettersStream.cs
- EmptyEnumerable.cs
- XmlDataFileEditor.cs
- SoapMessage.cs
- XsltContext.cs
- ActivationArguments.cs
- NetworkAddressChange.cs
- LinqDataSourceInsertEventArgs.cs
- XmlToDatasetMap.cs
- UnicodeEncoding.cs
- counter.cs
- WebHttpSecurityModeHelper.cs