Re: Getting attributs for membership provider from web.config

From: Dominick Baier [DevelopMentor] (dbaier_at_pleasepleasenospamdevelop.com)
Date: 10/12/05


Date: Wed, 12 Oct 2005 03:46:45 -0700

Hello Roel,

the Initialize method is private in the Membership class

You have to implement the Initialize method in your MembershipProvider derived
class.

The NameValueCollection holds the configuration values from the <membership>
element in web.config, e.g. "RequiresQuestionAndAnwer=true" - you have to
parse the collection to set the internal state in your class and the properties.

as i said - take the time to read the whitepapers i gave you the link to
- without completely understanding the architecture, you won't have much
fun with your provider.
there you will also find the source code of the depracated Access provider
as a template.

---------------------------------------
Dominick Baier - DevelopMentor
http://www.leastprivilege.com

> There is no Membership.Initialize(); atleast not in asp.net 2 but i
> found a
> function Initialize in System.Web.Security.Membership.Provider. The
> parameter string name is clear thats te provider name but the other
> parameter is what i don't understand.
> public virtual void Initialize (
> string name,
> NameValueCollection config
> )"Dominick Baier [DevelopMentor]"
> <dbaier@pleasepleasenospamdevelop.com>
> wrote in message
> news:42565460108bcf8c79d37e56e11c8@news.microsoft.com...
>
>> Hello news.microsoft.com,
>>
>> the source looks like this (in the Membership class)
>>
>> public static bool RequiresQuestionAndAnswer
>> {
>> get
>> {
>> Membership.Initialize();
>> return Membership.Provider.RequiresQuestionAndAnswer;
>> }
>> }
>> Initialize loads the configured default provider and assigns the
>> instance to the Provider property. So - they read the value from the
>> currently loaded provider implementation - which is your custom
>> provider. You are responsible in your provider to implement a
>> Initialize method and read the values from the NameValueCollection
>> (to populate the properties).
>>
>> so - your scenario should work.
>>
>> you have to closely follow all the design pattern by microsoft - read
>> more
>> here:
>> http://msdn.microsoft.com/asp.net/beta2/providers/default.aspx
>> ---------------------------------------
>> Dominick Baier - DevelopMentor
>> http://www.leastprivilege.com
>>> How can get the values of for example RequiresUniqueEmail from my
>>> own membershipprovider? Using is
>>> System.Web.Security.Membership.RequiresQuestionAndAnswer; is not an
>>> option because it will call the property from the membership
>>> provider.
>>>
>>> <membership userIsOnlineTimeWindow="15"
>>> defaultProvider="MembershipProviderSample">
>>> <providers>
>>> <add name="MembershipProviderSample"
>>> type="SecurityProviders.MembershipProviderSample"
>>> EnablePasswordReset="true"
>>> EnablePasswordRetrieval="true" MaxInvalidPasswordAttempts="5"
>>> MinRequiredNonAlphanumericCharacters="0"
>>> MinRequiredPasswordLength="6"
>>> MembershipPasswordFormat="Clear"
>>> RequiresQuestionAndAnswer="true"
>>> RequiresUniqueEmail="true"
>>> PasswordStrengthRegularExpression="[0-9a-zA-Z]{6,12}$"/>
>>> </providers>
>>> </membership>