Die beste Praxis, um zu autorisieren, werden alle Benutzer nur eine Seite
-
09-06-2019 - |
Frage
Was ist der beste Weg, um zu autorisieren, alle Benutzer auf einer einzigen Seite in einer asp.net website.
Denn außer der login-Seite und einer anderen Seite, ich leugne Sie alle Benutzer anzeigen von Seiten in der website.
Wie machen Sie diese Seite für alle Benutzer zugänglich ist?
Lösung
Ich habe die Formularauthentifizierung und die Schaffung der notwendigen GenericIdentity und CustomPrincipal Objekte, die mir ermöglicht die Nutzung der User.IsInRole geben Sie die Funktionen, die Sie normalerweise nur mit Windows-Authentifizierung.
So in meinem web.config Datei kann ich tun Sachen wie...
<location path="Login.aspx">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>
<location path="ManagementFolder">
<system.web>
<authorization>
<allow roles ="Administrator, Manager" />
</authorization>
</system.web>
</location>
Andere Tipps
Erstellt habe ich ein base - "Seite" - Klasse, die Griffe, die Art der Sache.Alle meine Seiten können dann eingerichtet werden, die mit den RequiresLogin Attribut, wenn ein login ist erforderlich, um Sie anzusehen.Wenn das Attribut nicht vorhanden ist, wird die Seite für alle zugänglich ist.
Beispiel:
<RequiresLogin()> _
<RequiresPermission("process")> _
Partial Class DesignReviewEditProgressPage
Inherits MyPage 'which inherits System.Web.UI.Page and deal with logins itself
...
End Class
Die MyPage-Klasse überprüft, was Attribute sind mit einer Markierung versehen auf sich selbst und wenn RequiresLogin vorhanden ist, leitet es Sie zu einer login-Seite.
Ich glaube, dies könnte angepasst werden, um fit Ihre eigenen problem.