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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top