Frage

Ich habe einen bestehenden Community-Backend und Ich mag Umbraco für meine Darstellungsschicht verwenden. Wie kann ich Login / Logout mit .Net Formularauthentifizierung implementieren? (Ich will nicht das Mitglied Funktionalität verwenden). Ich habe verschiedene Arten von Benutzern, die den Zugriff auf verschiedene Arten von Seiten. Wie kann ich das kontrollieren? Benutzerkontrolle?

War es hilfreich?

Lösung

Umbraco verwendet das ASP.NET Mitglied / Rolle-Provider-Modell für das Mitgliedschaftssystem ist, und es ist ein ziemlich einfacher Schritt des Standard eines aus für eine eigene Implementierung zu tauschen. Ich habe dies in der Vergangenheit getan, wo ich wollte Mitglieder gegen einen Active Directory-Speicher authentifizieren, aber ich kann es nicht vorstellen, dass sehr viel schwieriger zu authentifizieren gegen eine benutzerdefinierte Datenbank.

Der Vorteil von diesem ist, dass Sie die vollständige Integration mit dem Umbraco Mitgliedschafts-System zu erhalten, und durch einen benutzerdefinierten Rollenanbieter verwendet, Redakteure können Seiten beschränken mit dem in der Seitenbearbeitung Einrichtungen gebaut, im Gegensatz zu Ihnen in Ihrem Haken mit eigene Sicherheitskontrollen.

Es sollte möglich sein, eine einfache Mitgliedschaft Provider zu erstellen, indem Sie die extending UmbracoMembershipProvider Klasse und das Überschreiben der ValidateUser Methode. Ich habe das nicht selbst getan, aber ich weiß von anderen, die haben.

Für die Authentifizierung gegen einen benutzerdefinierten Rollenanbieter, müssen Sie eine Klasse erstellen, die von Roleprovider . Die Methoden, die Sie interessieren werden in überschrieben sind -. IsUserInRole , FindUsersInRole , GetAllRoles und GetRolesForUser

Hier ist ein Link zu einer Scott Guthrie

Andere Tipps

Ich habe zwei Ansätze auf meine umbraco Sites verwendet. Beide Ansätze sind Bedienelemente für die Anmeldung und Abmeldung, die zur Authentifizierung eines Benutzers mit einer benutzerdefinierten Lösung verantwortlich sind und Clearing-Anmeldeinformationen sind. Ich auch hinzufügen, für beide Ansätze, ein umbracoMembersOnly Attribut auf alle Dokumenttypen, die ich möchte schützen.

Im ersten Ansatz, hatte ich jede einzelne Vorlage überprüfen, ob der Benutzer Zugriff eingeschränkt wurde. Abstrahieren Dazu habe ich eine siteuser Klasse mit einem IsMember oder isLoggedIn Methode, die standortweit zur Verfügung stand und konnte entweder von einer XSLT oder Benutzer Control-Makro aufgerufen werden. Der Vorteil dieses Ansatzes ist, dass ich auf jede Vorlage benutzerdefinierte Nachrichten anpassen könnten und nicht nur den gleichen Zugang verweigert Seite bereitstellt.

Der zweite Ansatz - was die, die ich jetzt bevorzugen ist - wenn ein Berechtigungen Makro zu erstellen, die für die Kontrolle des Benutzers direkt verantwortlich ist, jede Seite zuzugreifen (dh prüft, ob ein umbracoMembersOnly Attribut und, wenn sie wahr ist, prüft, ob eine Session-Variable ). Dieses Makro wird in dem Master-Template enthalten, und führt so bei jeder Vorlage. Wenn der Benutzer nicht über die Berechtigung, die aktuelle Seite zuzugreifen hat, leite ich auf die gleiche Seite, aber mit einem? AltTemplate = RestrictedPage oder ähnlich wie der Query-String angehängt. (Stellen Sie sicher, dass Ihre Berechtigungen Makro prüft, ob ein AltTemplate = RestrictedPage in die Query-String, oder Sie werden in einer Endlosschleife von Umleitungen am Ende.)

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