Las mejores prácticas para autorizar todos los usuarios de una página
-
09-06-2019 - |
Pregunta
¿Cuál es la mejor manera para autorizar a todos los usuarios de una sola página en un asp.net sitio web.
Para la excepción de la página de inicio de sesión y una página más, me niego a todos los usuarios a partir de la visualización de las páginas en el sitio web.
¿Cómo hacer que esta página accesible para todos los usuarios?
Solución
He estado usando la autenticación de formularios y la creación de la necesaria GenericIdentity y CustomPrincipal objetos que me permite aprovechar al Usuario.IsInRole tipo de funciones que normalmente solo se consigue con la autenticación de Windows.
De esa manera en mi web.archivo de configuración, que puedo hacer cosas como...
<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>
Otros consejos
He creado una base de "página" de la clase que se encarga de ese tipo de cosas.Todas mis páginas, a continuación, puede ser decorado con los RequiresLogin atributo si es necesario iniciar una sesión a la vista de ellos.Si el atributo no está presente, la página es accesible a todos.
Ejemplo:
<RequiresLogin()> _
<RequiresPermission("process")> _
Partial Class DesignReviewEditProgressPage
Inherits MyPage 'which inherits System.Web.UI.Page and deal with logins itself
...
End Class
El MyPage clase comprueba qué atributos están siendo etiquetados a sí mismo y, si RequiresLogin está presente, reenvía a una página de acceso.
Creo que este podría ser adaptado para ajustarse a su propio problema.