public void UnexistingProvider ()
		{
			MembershipProviderCollection mpc = new MembershipProviderCollection ();
			Assert.IsNull (mpc["uho"]);
			// but this will throw an HttpException if we're using an unknown provider
			// in an ASP.NET control (like Login)
		}
		public void Add_ProviderBase ()
		{
			TestProviderBase pb = new TestProviderBase ();
			MembershipProviderCollection mpc = new MembershipProviderCollection ();
			mpc.Add (pb);
			// Add accept ProviderBase but docs says it throws 
			// an exception if it's not a MembershipProvider
		}
        internal BetterRoleProvider(
            WebSecurityFacade webSecurityFacade, MembershipProviderCollection membershipProviders)
        {
            Condition.Requires(webSecurityFacade, "webSecurityFacade").IsNotNull();
            Condition.Requires(membershipProviders, "membershipProviders").IsNotNull();

            this.webSecurityFacade = webSecurityFacade;
            this.membershipProviders = membershipProviders;
        }
Example #4
0
        private static bool InitializeSettings(bool initializeGeneralSettings, RuntimeConfig appConfig, MembershipSection settings)
        {
            if (!initializeGeneralSettings)
            {
                return(false);
            }

            s_HashAlgorithmType       = settings.HashAlgorithmType;
            s_HashAlgorithmFromConfig = !string.IsNullOrEmpty(s_HashAlgorithmType);
            if (!s_HashAlgorithmFromConfig)
            {
                // If no hash algorithm is specified, use the same as the "validation" in "<machineKey>".
                // If the validation is "3DES", switch it to use "SHA1" instead.
                MachineKeyValidation v = appConfig.MachineKey.Validation;
                if (v != MachineKeyValidation.AES && v != MachineKeyValidation.TripleDES)
                {
                    s_HashAlgorithmType = appConfig.MachineKey.ValidationAlgorithm;
                }
                else
                {
                    s_HashAlgorithmType = "SHA1";
                }
            }
            s_Providers = new MembershipProviderCollection();
            if (HostingEnvironment.IsHosted)
            {
                ProvidersHelper.InstantiateProviders(settings.Providers, s_Providers, typeof(MembershipProvider));
            }
            else
            {
                foreach (ProviderSettings ps in settings.Providers)
                {
                    Type t = Type.GetType(ps.Type, true, true);
                    if (!typeof(MembershipProvider).IsAssignableFrom(t))
                    {
                        throw new ArgumentException(SR.GetString(SR.Provider_must_implement_type, typeof(MembershipProvider).ToString()));
                    }
                    MembershipProvider  provider    = (MembershipProvider)Activator.CreateInstance(t);
                    NameValueCollection pars        = ps.Parameters;
                    NameValueCollection cloneParams = new NameValueCollection(pars.Count, StringComparer.Ordinal);
                    foreach (string key in pars)
                    {
                        cloneParams[key] = pars[key];
                    }
                    provider.Initialize(ps.Name, cloneParams);
                    s_Providers.Add(provider);
                }
            }

            TimeSpan timeWindow = settings.UserIsOnlineTimeWindow;

            s_UserIsOnlineTimeWindow = (int)timeWindow.TotalMinutes;

            return(true);
        }
        internal BetterProfileProvider(
            Func<string, IDatabase> databaseFactory, 
            Func<string, string, string, string, string, ISqlQueryBuilder> sqlQueryBuilderFactory, 
            MembershipProviderCollection membershipProviders)
        {
            Condition.Requires(databaseFactory, "databaseFctory").IsNotNull();
            Condition.Requires(sqlQueryBuilderFactory, "sqlQueryBuilderFactory").IsNotNull();
            Condition.Requires(membershipProviders, "membershipProviders").IsNotNull();

            this.databaseFactory = databaseFactory;
            this.sqlQueryBuilderFactory = sqlQueryBuilderFactory;
            this.membershipProviders = membershipProviders;
        }
Example #6
0
 // VSO #265267 we want to log a warning in the event log, whenever detect using clear password or encrypted password formats settings in Membership provider
 private static void CheckedPasswordFormat(MembershipProviderCollection providers)
 {
     //VSO #294931 Since this is an optional feature, we want to prevent any corner cases that were not able to return the password format. In those cases, we will just do nothing and not log any warnings.
     try {
         foreach (MembershipProvider p in providers)
         {
             if (p != null && (p.PasswordFormat == MembershipPasswordFormat.Clear || p.PasswordFormat == MembershipPasswordFormat.Encrypted))
             {
                 string providerName = p.Name ?? string.Empty;
                 WebBaseEvent.RaiseRuntimeError(new ConfigurationErrorsException(SR.GetString(SR.MembershipPasswordFormat_Obsoleted, providerName, p.PasswordFormat)), typeof(MembershipProvider));
             }
         }
     }
     catch { }
 }
Example #7
0
 private static bool InitializeSettings(bool initializeGeneralSettings, RuntimeConfig appConfig, MembershipSection settings)
 {
     if (!initializeGeneralSettings)
     {
         return(false);
     }
     s_HashAlgorithmType       = settings.HashAlgorithmType;
     s_HashAlgorithmFromConfig = !string.IsNullOrEmpty(s_HashAlgorithmType);
     if (!s_HashAlgorithmFromConfig)
     {
         MachineKeyValidation validation = appConfig.MachineKey.Validation;
         if ((validation != MachineKeyValidation.AES) && (validation != MachineKeyValidation.TripleDES))
         {
             s_HashAlgorithmType = appConfig.MachineKey.ValidationAlgorithm;
         }
         else
         {
             s_HashAlgorithmType = "SHA1";
         }
     }
     s_Providers = new MembershipProviderCollection();
     if (HostingEnvironment.IsHosted)
     {
         ProvidersHelper.InstantiateProviders(settings.Providers, s_Providers, typeof(MembershipProvider));
     }
     else
     {
         foreach (ProviderSettings settings2 in settings.Providers)
         {
             Type c = Type.GetType(settings2.Type, true, true);
             if (!typeof(MembershipProvider).IsAssignableFrom(c))
             {
                 throw new ArgumentException(System.Web.SR.GetString("Provider_must_implement_type", new object[] { typeof(MembershipProvider).ToString() }));
             }
             MembershipProvider  provider   = (MembershipProvider)Activator.CreateInstance(c);
             NameValueCollection parameters = settings2.Parameters;
             NameValueCollection config     = new NameValueCollection(parameters.Count, StringComparer.Ordinal);
             foreach (string str in parameters)
             {
                 config[str] = parameters[str];
             }
             provider.Initialize(settings2.Name, config);
             s_Providers.Add(provider);
         }
     }
     s_UserIsOnlineTimeWindow = (int)settings.UserIsOnlineTimeWindow.TotalMinutes;
     return(true);
 }
Example #8
0
		static Membership ()
		{
			MembershipSection section = (MembershipSection) WebConfigurationManager.GetSection ("system.web/membership");

			providers = new MembershipProviderCollection ();

			ProvidersHelper.InstantiateProviders (section.Providers, providers, typeof (MembershipProvider));

			provider = providers[section.DefaultProvider];

			onlineTimeWindow = (int) section.UserIsOnlineTimeWindow.TotalMinutes;
			hashAlgorithmType = section.HashAlgorithmType;
			if (String.IsNullOrEmpty (hashAlgorithmType)) {
				MachineKeySection mks = WebConfigurationManager.GetSection ("system.web/machineKey") as MachineKeySection;
				MachineKeyValidationConverter cvt = new MachineKeyValidationConverter ();
				hashAlgorithmType = cvt.ConvertTo (null, null, mks.Validation, typeof (string)) as string;
			}
			
			if (String.IsNullOrEmpty (hashAlgorithmType))
				hashAlgorithmType = "SHA1";
		}
Example #9
0
        static Membership()
        {
            MembershipSection section = (MembershipSection)WebConfigurationManager.GetSection("system.web/membership");

            providers = new MembershipProviderCollection();

            ProvidersHelper.InstantiateProviders(section.Providers, providers, typeof(MembershipProvider));

            provider = providers[section.DefaultProvider];

            onlineTimeWindow  = (int)section.UserIsOnlineTimeWindow.TotalMinutes;
            hashAlgorithmType = section.HashAlgorithmType;
            if (String.IsNullOrEmpty(hashAlgorithmType))
            {
                MachineKeySection             mks = WebConfigurationManager.GetSection("system.web/machineKey") as MachineKeySection;
                MachineKeyValidationConverter cvt = new MachineKeyValidationConverter();
                hashAlgorithmType = cvt.ConvertTo(null, null, mks.Validation, typeof(string)) as string;
            }

            if (String.IsNullOrEmpty(hashAlgorithmType))
            {
                hashAlgorithmType = "SHA1";
            }
        }
Example #10
0
		private void ForceMemebershipProvider(IAuthenticationDataProvider authenticationDataProvider)
		{
			var objSqlMembershipProvider = new MembershipProviderWrapper(authenticationDataProvider);
			var colMembershipProviders = new MembershipProviderCollection { objSqlMembershipProvider };
			colMembershipProviders.SetReadOnly();

			const BindingFlags enuBindingFlags = BindingFlags.NonPublic | BindingFlags.Static;
			Type objMembershipType = typeof(Membership);
			// ReSharper disable PossibleNullReferenceException
			objMembershipType.GetField("s_Initialized", enuBindingFlags).SetValue(null, true);
			objMembershipType.GetField("s_InitializeException", enuBindingFlags).SetValue(null, null);
			objMembershipType.GetField("s_HashAlgorithmType", enuBindingFlags).SetValue(null, "SHA1");
			objMembershipType.GetField("s_HashAlgorithmFromConfig", enuBindingFlags).SetValue(null, false);
			objMembershipType.GetField("s_UserIsOnlineTimeWindow", enuBindingFlags).SetValue(null, 15);
			objMembershipType.GetField("s_Provider", enuBindingFlags).SetValue(null, objSqlMembershipProvider);
			objMembershipType.GetField("s_Providers", enuBindingFlags).SetValue(null, colMembershipProviders);
			// ReSharper restore PossibleNullReferenceException
		}
		public void Add_Null ()
		{
			MembershipProviderCollection mpc = new MembershipProviderCollection ();
			mpc.Add (null);
		}
        public void InjectMembershipImplementation(IEnumerable<KeyValuePair<string, string>> simulatedAppConfigSettings)
        {
            if (MembershipIsInitialized)
                _originalProvider = MembershipProvider;
            else
                _originalProvider = null;

            _injectedProvider = GetProvider();

            InitializeMembershipProviderFromConfigEntry(_injectedProvider, simulatedAppConfigSettings);

            PostInitializeUpdate(_injectedProvider);

            MembershipProvider = _injectedProvider;
            MembershipIsInitialized = true;

            MembershipProviders = new MembershipProviderCollection();
            MembershipProviders.Add(_injectedProvider);
            MembershipProviders.SetReadOnly();
        }
 private static bool InitializeSettings(bool initializeGeneralSettings, RuntimeConfig appConfig, MembershipSection settings)
 {
     if (!initializeGeneralSettings)
     {
         return false;
     }
     s_HashAlgorithmType = settings.HashAlgorithmType;
     s_HashAlgorithmFromConfig = !string.IsNullOrEmpty(s_HashAlgorithmType);
     if (!s_HashAlgorithmFromConfig)
     {
         MachineKeyValidation validation = appConfig.MachineKey.Validation;
         if ((validation != MachineKeyValidation.AES) && (validation != MachineKeyValidation.TripleDES))
         {
             s_HashAlgorithmType = appConfig.MachineKey.ValidationAlgorithm;
         }
         else
         {
             s_HashAlgorithmType = "SHA1";
         }
     }
     s_Providers = new MembershipProviderCollection();
     if (HostingEnvironment.IsHosted)
     {
         ProvidersHelper.InstantiateProviders(settings.Providers, s_Providers, typeof(MembershipProvider));
     }
     else
     {
         foreach (ProviderSettings settings2 in settings.Providers)
         {
             Type c = Type.GetType(settings2.Type, true, true);
             if (!typeof(MembershipProvider).IsAssignableFrom(c))
             {
                 throw new ArgumentException(System.Web.SR.GetString("Provider_must_implement_type", new object[] { typeof(MembershipProvider).ToString() }));
             }
             MembershipProvider provider = (MembershipProvider) Activator.CreateInstance(c);
             NameValueCollection parameters = settings2.Parameters;
             NameValueCollection config = new NameValueCollection(parameters.Count, StringComparer.Ordinal);
             foreach (string str in parameters)
             {
                 config[str] = parameters[str];
             }
             provider.Initialize(settings2.Name, config);
             s_Providers.Add(provider);
         }
     }
     s_UserIsOnlineTimeWindow = (int) settings.UserIsOnlineTimeWindow.TotalMinutes;
     return true;
 }
        private static bool InitializeSettings(bool initializeGeneralSettings, RuntimeConfig appConfig, MembershipSection settings) {
            if (!initializeGeneralSettings) {
                return false;
            }

            s_HashAlgorithmType = settings.HashAlgorithmType;
            s_HashAlgorithmFromConfig = !string.IsNullOrEmpty(s_HashAlgorithmType);
            if (!s_HashAlgorithmFromConfig) {
                // If no hash algorithm is specified, use the same as the "validation" in "<machineKey>".
                // If the validation is "3DES", switch it to use "SHA1" instead.
                MachineKeyValidation v = appConfig.MachineKey.Validation;
                if (v != MachineKeyValidation.AES && v != MachineKeyValidation.TripleDES)
                    s_HashAlgorithmType = appConfig.MachineKey.ValidationAlgorithm;
                else
                    s_HashAlgorithmType = "SHA1";
            }
            s_Providers = new MembershipProviderCollection();
            if (HostingEnvironment.IsHosted) {
                ProvidersHelper.InstantiateProviders(settings.Providers, s_Providers, typeof(MembershipProvider));
            } else {
                foreach (ProviderSettings ps in settings.Providers) {
                    Type t = Type.GetType(ps.Type, true, true);
                    if (!typeof(MembershipProvider).IsAssignableFrom(t))
                        throw new ArgumentException(SR.GetString(SR.Provider_must_implement_type, typeof(MembershipProvider).ToString()));
                    MembershipProvider provider = (MembershipProvider)Activator.CreateInstance(t);
                    NameValueCollection pars = ps.Parameters;
                    NameValueCollection cloneParams = new NameValueCollection(pars.Count, StringComparer.Ordinal);
                    foreach (string key in pars)
                        cloneParams[key] = pars[key];
                    provider.Initialize(ps.Name, cloneParams);
                    s_Providers.Add(provider);
                }
            }

            TimeSpan timeWindow = settings.UserIsOnlineTimeWindow;
            s_UserIsOnlineTimeWindow = (int)timeWindow.TotalMinutes;

            return true;
        }