2010-06-08 18 views
5

Stworzyłem niestandardową klasę MembershipProvider, jak na razie dobrą, jednak nie jestem pewien, jak odczytać ustawienia konfiguracyjne z pliku web.config.Czytanie sekcji członkostwa z web.config

Próbowałem wyszukiwać w Google i Stackoverflow, wygląda na to, że ktoś również napotkał mój problem i zapytał, ale nie udzielono odpowiedzi.

To powinna być prosta rzecz, ale jestem bardzo nowy w tworzeniu stron internetowych, więc czytanie ustawień z web.config wydaje mi się zbyt techniczne.

Oto moje ustawienia:

<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> 

Chciałbym odczytać ustawienie minRequiredPasswordLength, proszę pomóc.

Odpowiedz

7

Jak to ustawić jako dostawcę domyślnego powinno wystarczyć do:

int i = Membership.MinRequiredPasswordLength; 

I że wróci int określającego minimalny wymagany długość hasła.

+0

Wielkie dzięki, ta praca – PlayKid

+0

Przepraszamy, ale co z sekcją 'PasswordFormat'? – Musikero31

20

tutaj jest rozwiązanie w postaci kodu:

 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 Dzięki, szukałem sposobu na załadowanie domyślnego dostawcy z config. – CRice

2

Jeśli nadpisane na System.Web.Security.MembershipProvider w swojej własnej klasie można uzyskać ustawienia członkostwa web.config jak sugeruje Robban, właśnie poprzez wywołanie metody System.Web.Security.Membership. Jednak połączenia te będą kierowane do Twojej klasy dostawcy członkostwa, więc będziesz musiał podać jej implementację.

Załóżmy, że nadpisałeś klasę MembershipProvider i dodano sekcję w pliku konfiguracyjnym, tak jak w oryginalnym pytaniu powyżej. Połączenie z int i = Membership.MinRequiredPasswordLength zostanie skierowane do TWOJEGO wdrożenia. Może to wyglądać tak:

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

MSDN daje pełny przykład here. W przykładzie pokazano, jak odczytać plik konfiguracyjny, aby ustawić właściwości lokalne, takie jak _minRequiredPasswordLength.

Powiązane problemy