configuration - Custom SimpleMembershipProvider not initialized correctly -
i have custom simplemembershipprovider implemented in application service layer. provider has of own properties inherited base classes. although overridden initialize method called on provider, , executes without exceptions, inherited properties incorrect default values such 0 or int32.maxvalue. need them initialized values provided in configuration. how can achieve this?
the configuration looks this:
<membership defaultprovider="abcmembershipprovider"> <providers> <clear/> <add name="abcmembershipprovider" type="abc.services.abcmembershipservices, abc.services" connectionstringname="membership" applicationname="abc" enablepasswordretrieval="false" enablepasswordreset="true" requiresquestionandanswer="false" requiresuniqueemail="true" passwordformat="hashed" maxinvalidpasswordattempts="3" passwordattemptwindow="10" passwordvalidityperiod="30" /> </providers> </membership> the provider overrides initialize method this:
public override void initialize(string name, system.collections.specialized.namevaluecollection config) { if (config.containskey("passwordvalidityperiod")) { int.tryparse(config["passwordvalidityperiod"], out _passwordvalidityperiod); config.remove("passwordvalidityperiod"); } base.initialize(name, config); } during service startup, simplemembershipprovider initialised follows:
if (!websecurity.initialized) websecurity.initializedatabaseconnection("membership", "systemuser", "userid", "username", false); the initialize method called membership system during websecurity.initializedatabaseconnection() call
looking @ source code, reason occurs because various membershipprovider properties given default value simplemembershipprovider when provider has been initialized. example:
// inherited membershipprovider ==> forwarded previous provider if provider hasn't been initialized public override int maxinvalidpasswordattempts { { return initializecalled ? int32.maxvalue : previousprovider.maxinvalidpasswordattempts; } } the way round override these properties in custom provider.
Comments
Post a Comment