0

In einem aktuellen Webprojekt mussten wir benutzerdefinierte Mitgliedschafts-/Rollenanbieter für Active Directory implementieren und verwenden, da wir einige spezielle Fälle behandeln müssen. Wir hatten keine wirklichen Probleme beim Erstellen und Verwenden dieser Anbieter, aber wir stießen auf ein Problem mit Episerver.Deaktivieren Erstellen/Bearbeiten/Entfernen von Benutzern/Rollen in Episerver mit benutzerdefinierten Mitgliedschaftsanbieter

Da die Benutzererstellung im System komplex ist, wollten/konnten wir das Erstellen/Editieren nicht innerhalb der Admin-Oberfläche von Episerver erlauben. Wir wussten, dass dies für den WindowsMembershipProvider gemacht wird, die Seiten sind noch da, aber die Felder sind deaktiviert und es gibt einen Info-Text, der Sie darüber informiert, dass die Erstellung/Bearbeitung bei diesem Anbieter nicht unterstützt wird. Es sieht aus wie das Bild unten.

enter image description here

So ist die Frage, wie erreichen wir dies mit unseren kundenspezifischen Anbietern?

Antwort

1

Am Ende war die Lösung einfach und ziemlich einfach, aber schwer zu finden.

Episerver verwendet ein Wörterbuch, in dem die Funktionen für Provider gespeichert werden. Standardanbieter wie SqlMembershipProvider und WindowsMembershipProvider werden standardmäßig hinzugefügt. Der Schlüssel für das Wörterbuch ist der Providertyp (Episerver 6).

Methoden zum Hinzufügen neuer Einträge sind öffentlich, also mussten wir nur den folgenden Code zu Global.asax.cs hinzufügen.

protected void Application_Start(object sender, EventArgs e) 
    { 
     RegisterCapabilitiesOnMembershipProviders(); 
    } 

    private static void RegisterCapabilitiesOnMembershipProviders() 
    { 
     ProviderCapabilities.AddProvider(typeof(CustomActiveDirectoryMembershipProvider), new ProviderCapabilitySettings(0,new string[0])); 
     ProviderCapabilities.AddProvider(typeof(CustomActiveDirectoryRoleProvider), new ProviderCapabilitySettings(0, new string[0])); 
    } 

Dies fügt unsere eigene Mitgliedschaft und Rollenanbieter ohne Fähigkeiten Dictionary, was bedeutet, dass alle Erstellen/Bearbeiten von Benutzern und Rollen deaktiviert sind.

Die folgenden Aktionen sind verfügbar: Aktualisieren, Erstellen, Löschen. Wenn Sie nur aktualisieren möchten, und erstellen Sie die 0 mit diesem ersetzen:

ProviderCapabilities.Action.Update | ProviderCapabilities.Action.Create 

Die Aktion Enum das Attribut Flags.