Frage

Wenn die MembershipProvider überschrieben und es direkt aufrufen, gibt es eine Möglichkeit, die Namevaluecollection Konfigurationsparameter des Initialize-Methode zu füllen, ohne manuell suchen durch die Konfigurationsdatei für die Einstellungen?

Offensichtlich Initialisieren von asp.net wird aufgerufen und die Config irgendwo gefüllt wird. Ich habe meine eigenen MembershipProvider umgesetzt und es funktioniert gut durch die eingebauten Kontrollen. Ich möchte eine neue Instanz von meinem Provider erstellen und einen Anruf, um es direkt zu machen, aber ich will nicht wirklich die .config für die MembershipProvider analysieren, ist es Connection String Name und dann die Verbindungszeichenfolge, wenn es bereits Wesen irgendwo getan .

War es hilfreich?

Lösung

tvanfosson- Danke für die Hilfe. (Wenn ich die 15 Punkte hatte notwendig Ich würde Sie wählen nach oben)

Von Ihrem Link war ich in der Lage, es herauszufinden. Es stellt sich der zweite Parameter zum Initialisieren proceedure aus der Liste der Parameter von dem Anbieter und konnte auf folgende Weise erreicht werden:

string configPath = "~/web.config";
Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);
MembershipSection section = (MembershipSection)config.GetSection("system.web/membership");
ProviderSettingsCollection settings = section.Providers;
NameValueCollection membershipParams = settings[section.DefaultProvider].Parameters;
Initialize(section.DefaultProvider, membershipParams);

Andere Tipps

Nicht sicher, warum Sie eine neue erstellen wollen, aber wenn Sie es selbst erstellen, werden Sie müssen die Web-Config lesen und die Werte erhalten Sie sich () übergeben zu initialisieren, da dies außerhalb der Klasse erfolgt. Ich bin sicher, aber, dass es bereits ein Abschnitt Handler für diesen Abschnitt, so dass es nur eine Frage zu tun sein sollte:

MembershipSection section  = WebConfigurationManager.GetSection("membership");

Dann Ihren Provider und der Zugriff auf seine Eigenschaften, die Namevaluecollection zu konstruieren. Ich glaube nicht, müssen Sie keinen Code schreiben, um den Konfigurationsabschnitt zu analysieren.

Hier ist die MembershipSection Dokumentation MSDN. Drill-Down von dort aus.

In jedem Fall sollten Sie nicht Instanz MembershipProvider erstellen. Es ist die Schaffung und initializating von Standard asp.net Infrastruktur. Sie können wie diese von Code darauf zugreifen:

var customerMembership = Membership.Provider;

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top