Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So verhindern Sie, dass nicht angemeldete/nicht autorisierte Benutzer Webseiten in ASP.NET anzeigen

Richten Sie zuerst die Mitgliedschaft und den Rollenanbieter ein. Es gibt eine ganze Geschichte darüber. Ich werde hier eine Hilfestellung geben.

Hier ist der Link zu SqlMembershipProvider (eine der Optionen, die Sie wählen können):http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.aspx

Hier ist der Link zu SqlRoleProvider (wieder nur eine der Optionen, die Sie wählen können)::http://msdn.microsoft.com/en-us/library/system.web.security.sqlroleprovider.aspx

Nachdem Sie dies eingerichtet haben, können Sie den Benutzer-/Rollenzugriff auf Ordnerebene einschränken. Fügen Sie diesen Code in web.config (innerhalb des Konfigurations-Tags) ein:

  <location path="AdminPages">
    <system.web>
      <authorization>
        <allow roles="Administrator"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
  <location path="UserPages">
    <system.web>
      <authorization>
        <allow roles="Administrator,User"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

Hier ist eine kleine Erklärung. Root-Ordner "AdminPages" wird nur Benutzern in der Rolle "Administratoren" erlaubt. Root-Ordner "UserPages" für Benutzer in der Rolle "Administrator" und "Benutzer". In beiden Fällen wird unbekannten Benutzern der Zugriff auf Ordner verweigert. Das ist alles, was Sie brauchen. Eine Alternative dazu ist, eine Klasse zu erstellen, die von Page erbt und dann den Seitenzugriff behandelt ... aber ich würde diesen Weg nicht gehen.