2010-06-08 10 views
5

He creado una clase MembershipProvider personalizada, hasta ahora todo bien, sin embargo, no estoy seguro de cómo leer la configuración del archivo web.config.Lectura de la sección de membresía de web.config

Traté de buscar desde Google y Stackoverflow, parece que alguien también está experimentando mi problema y le pregunté, pero no se ha dado respuesta.

Debería ser algo simple, pero soy muy nuevo en el desarrollo web, por lo que leer configuraciones de web.config parece demasiado técnico para mí.

Aquí está mi configuración:

<membership defaultProvider="CustomMembershipProvider"> 
    <providers> 
    <clear/> 
    <add name="CustomMembershipProvider" 
     type="Test.Models.CustomMembershipProvider,Test" 
     passwordFormat="Hashed" 
     connectionStringName="ApplicationServices" 
     minRequiredPasswordLength="8" 
     minRequiredNonalphanumericCharacters="0" 
     maxInvalidPasswordAttempts="5" 
     enablePasswordReset="false" 
     enablePasswordRetrieval="false" 
     requiresQuestionAndAnswer="false" 
     applicationName="/"/> 
    </providers> 
</membership> 

me gustaría leer la configuración minRequiredPasswordLength, por favor ayudar.

Respuesta

7

Como esto está establecido como su proveedor predeterminado que debería ser suficiente para:

int i = Membership.MinRequiredPasswordLength; 

Y eso sería devolver un entero que especifica el mínimo requerido longitud de la contraseña.

+0

Muchas gracias, eso funciona – PlayKid

+0

Lamento agregar esto, pero ¿qué hay de la sección 'PasswordFormat'? – Musikero31

20

Aquí está la solución de código:

 MembershipSection membershipSection = (MembershipSection)WebConfigurationManager.GetSection("system.web/membership"); 
     string defaultProvider = membershipSection.DefaultProvider; 
     ProviderSettings providerSettings = membershipSection.Providers[defaultProvider]; 
     string connectionStringName = providerSettings.Parameters["connectionStringName"]; 
     string connectionUsername = providerSettings.Parameters["connectionUsername"]; 
     string connectionPassword = providerSettings.Parameters["connectionPassword"]; 
     string connectionString = WebConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString; 
+0

+1 Gracias, estaba buscando una forma de cargar el proveedor predeterminado desde config. – CRice

2

Si ha anulado la System.Web.Security.MembershipProvider en su propia clase se puede obtener la configuración de pertenencia web.config como sugiere Robban, simplemente llamando a los métodos System.Web.Security.Membership. Sin embargo, estas llamadas se dirigirán a su clase de proveedor de membresía, por lo que deberá proporcionar alguna implementación.

Suponiendo que ha anulado la clase MembershipProvider y ha agregado una sección en el archivo de configuración, como en la pregunta original anterior. Una llamada a int i = Membership.MinRequiredPasswordLength se dirigirá a SU implementación. Esto podría tener este aspecto:

public override int MinRequiredPasswordLength 
    { 
     get { return _minRequiredPasswordLength; } 
    } 

MSDN da un ejemplo completo here. El ejemplo muestra cómo leer el archivo de configuración para establecer las propiedades locales, como _minRequiredPasswordLength.

Cuestiones relacionadas