2010-06-08 6 views
5

Ich habe eine benutzerdefinierte MembershipProvider-Klasse erstellt, so weit so gut, aber ich bin mir nicht sicher, wie Sie die Konfigurationseinstellungen aus der Datei web.config lesen.Lesen Mitgliedschaftsbereich aus web.config

Ich habe versucht, von Google und Stackoverflow zu suchen, scheint wie jemand auch meine Problem und fragte, aber keine Antwort wurde gegeben.

Es sollte eine einfache Sache sein, aber ich bin sehr neu in der Webentwicklung, also liest das Lesen von Einstellungen aus web.config zu technisch zu mir weg.

Hier sind meine Einstellungen:

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

Ich mag würde die minRequiredPasswordLength Einstellung lesen, bitte helfen.

Antwort

7

Da dies als Standard-Anbieter festgelegt wird, soll es genug sein, um zu:

int i = Membership.MinRequiredPasswordLength; 

Und das wäre ein int gibt die erforderliche Mindestkennwortlänge angeben.

+0

Vielen Dank, dass Arbeit – PlayKid

+0

Entschuldigen Sie, um hinzuzufügen, aber wie ist es mit dem 'PasswordFormat' Abschnitt? – Musikero31

20

hier ist die Lösung in Code:

 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 Danke, ich suchte nach einer Möglichkeit, den Standardanbieter von Config zu laden. – CRice

2

Wenn Sie die System.Web.Security.MembershipProvider in Ihrer eigenen Klasse überschrieben haben, können Sie die web.config Mitgliedschaftseinstellungen erhalten, wie Robban schon sagt, nur durch die System.Web.Security.Membership Methoden aufrufen. Diese Anrufe werden jedoch an Ihre Mitgliedschaftsanbieterklasse weitergeleitet. Daher müssen Sie eine Implementierung bereitstellen.

Angenommen, Sie haben die MembershipProvider Klasse überschrieben und einen Abschnitt in der Konfigurationsdatei hinzugefügt, wie in der ursprünglichen Frage oben. Ein Anruf an int wird an Ihre Implementierung gerichtet. Dies könnte wie folgt aussehen:

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

MSDN gibt ein komplettes Beispiel here. Das Beispiel zeigt Ihnen, wie Sie die Konfigurationsdatei lesen, um die lokalen Eigenschaften wie _minRequiredPasswordLength festzulegen.

Verwandte Themen