sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo restringir que los usuarios no registrados/no autorizados vean páginas web en ASP.NET

Primero establezca la membresía y el proveedor de funciones. Hay toda una historia al respecto. Daré una ayuda aquí.

Aquí hay un enlace a SqlMembershipProvider (una de las opciones que puede tomar):http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.aspx

Aquí hay un enlace a SqlRoleProvider (nuevamente, solo una de las opciones que puede tomar)::http://msdn.microsoft.com/en-us/library/system.web.security.sqlroleprovider.aspx

Una vez que haya establecido esto, puede limitar el acceso de usuario/función a nivel de carpeta. Coloque este código en web.config (dentro de la etiqueta de configuración):

  <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>

Aquí hay una pequeña explicación. La carpeta raíz "AdminPages" solo se permitirá a los usuarios con el rol "Administradores". Carpeta raíz "UserPages" para usuarios con rol "Administrador" y "Usuario". En ambos casos, los usuarios desconocidos no podrán acceder a las carpetas. Esto es todo lo que necesitas. Una alternativa a esto es crear una clase que herede de Page y luego manejar el acceso a la página... sin embargo, yo no iría por ese camino.