Ich benutze benutzerdefinierte Benutzerzugehörigkeit in asp.NET so Benutzer ist ein Objekt, das Mitglieder enthält. Eines der Mitglieder des Benutzers ist "IsCompanyAdmin". Ich habe ein paar aspx Seiten nur für Firmenadministratoren. Gibt es eine Möglichkeit, diese Seiten von Nicht-Administrator-Benutzern zu verhindern, die die web.config verwenden?verhindern Seiten in web.config nach Benutzerelement
Antwort
In ASP.Net ist die Standardmesse für die Beschränkung des Zugriffs auf Seiten in der Konfiguration über die Location element.
Im folgenden Beispiel werden alle Benutzer eingeschränkt, mit Ausnahme von Benutzern, die sich in der Rolle "Administrator" befinden. Dies setzt jedoch voraus, dass Sie eine RoleProvider konfiguriert haben.
<location path="RestrictedPage.aspx">
<system.web>
<authorization>
<allow roles="Admin" />
<deny users="*" />
</authorization>
</system.web>
</location>
Es gibt several examples, wie Sie Ihre eigenen benutzerdefinierten Rollenanbieter zu implementieren, aber wenn man damit durchkommen kann, dann würde ich das in SqlRoleProvider gebaut verwenden.
Ich habe keine Admin-Rolle, und ich möchte keine machen. Meine Trennung in Rollen erfolgt nach Modulen: Modul1, Modul2, ... Admin ist kein Modul, daher erstelle ich ein Mitglied im Benutzerobjekt, das angibt, ob der Benutzer ein Administrator ist. – Naor
Die einzige andere Möglichkeit wäre, ein eigenes HttpModule zu erstellen, um Informationen aus web.config zu laden und dann eingehende Anfragen zu prüfen, um den Zugriff basierend auf Ihrem benutzerdefinierten Mitgliedschaftsobjekt zu beschränken. Es ist wirklich nicht sehr schwierig, wenn auch etwas langweilig. – Josh
Wenn ich Ihr Problem richtig verstehe, müssen Sie keine Rolle in der Datenbank haben.
Was können Sie in Ihrer CustomRoleProvider GetRolesForUser-Methode tun, geben Sie eine Zeichenfolge [] zurück, die je nach Benutzer Rollen enthält. Das Berechtigungsmodul verwendet diese Rollen. Sagen Sie also Ihre Eigenschaft IsCompanyAdmin = "true", dann fügen Sie "Admin" zur Zeichenfolge [] hinzu.
Dann sollte der Standortvorschlag von Josh funktionieren, als ob Sie eine "Admin" -Rolle in der Datenbank haben.
Korrekt, alle Sicherheitsprüfungen werden basierend auf dem Principal-Objekt durchgeführt, das an den aktuellen Thread gebunden wird. Und nur um zu bemerken, dass die Rolle sein kann, was immer Sie wollen ... "Bob", "Larry", etc ... – Josh
Bitte lesen Sie meinen Kommentar zu Josh. – Naor
@Naor: Entschuldigung, vielleicht verstehe ich das Modul nicht ganz. Macht es Ihnen etwas mehr zu erklären? – gbs
- 1. Zugriff auf Admin-Seiten in AngularJS verhindern
- 2. Verhindern, dass Besucher bestimmte Seiten öffnen
- 3. Aufschlüsselung nach Seiten
- 4. verhindern Umleitung nach Vorlage
- 5. href Verhindern bis nach
- 6. verhindern scroll nach Seite
- 7. Verhindern, dass Iframe-Seiten in den IE-Browserverlauf eingefügt werden
- 8. Verhindern des Verlustes von Tastenanschlägen zwischen Seiten in einer Webanwendung
- 9. verhindern doppelte Einreichung von Formularen auf JSP-Seiten
- 10. Oracle.ManagedDataAccess-Nuggetpaket sperrt web.config nach Wiederherstellung
- 11. sensequently lädt Seiten in divs nach Zeit
- 12. Übereinstimmungselementname in web.config Umwandlung
- 13. Verhindern, dass externe Benutzer Wiki-Seiten aktualisieren oder hinzufügen
- 14. Nuget umbenennen web.config in web.config.transform
- 15. UnityContainer in web.config konfiguriert
- 16. Geschwister-Seiten nach Taxonomie auflisten
- 17. Wie kann ich verhindern, dass iOS Safari-Webseiten nach dem Hinzufügen zum Startbildschirm zwischengespeicherte Seiten laden?
- 18. window.location.hash = ""; Scrollen nach oben verhindern?
- 19. ASP.NET Mehrere web.config Datei
- 20. MouseUp/MouseClick nach MouseDown verhindern
- 21. verhindern zurück Knopf nach Abmeldeseite
- 22. Web.config-Umwandlungen in ASP.NET MVC 2 und zusätzliche Web.config-Dateien
- 23. Überschreibe X-UA-kompatible Einstellungen in web.config für bestimmte Seiten und Frames
- 24. 301 Redirect in ASP.NET web.config einschließlich Parameter
- 25. Wie zu verhindern, direkten Zugriff von PHP-Seiten
- 26. web.config urlmapping
- 27. Wie kann ich verhindern, dass applicationSettings in der Datei web.config vererbt wird?
- 28. Sonderzeichen in web.config
- 29. in der Datei web.config
- 30. C# Namespaces in web.config
verwenden Sie auch einen benutzerdefinierten Rollenanbieter? – Josh
@Josh: Ja, tue ich. – Naor