asp.net web-config asp.net-authorization

asp.net - ¿Cómo especificar la ubicación raíz(/) en web.config?



web-config asp.net-authorization (10)

La forma en que lo hicimos en el pasado fue crear una carpeta para todas las funciones que requieren inicio de sesión y el conjunto requiere autenticación para esa carpeta. Todos los aspx van a esa carpeta. La raíz del sitio permanece abierta.

¿Cómo se especifica una ubicación raíz en web.config para permitir que los usuarios no autenticados accedan a ella?

La ubicación raíz es servida por default.aspx, pero los usuarios normalmente no ven default.aspx, solo ven http://mysite.com/ .

Así que he añadido

<location path="~/default.aspx"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location>

Lo que funciona si el usuario mysite.com/default.aspx en mysite.com/default.aspx , pero si el usuario mysite.com/ en mysite.com/ , aún se redirige a la página de inicio de sesión.

He intentado <location path="~"> (no ayuda) y también <location path="~/"> , <location path=""> (el sitio falla completamente) y no pude hacer que funcione.

¿Algunas ideas?


Merk tenía razón!

solía

<location path=""> <system.webServer> <httpRedirect enabled="true" destination="http://www.newpathdestination.com" exactDestination="true" httpResponseStatus="Permanent" /> </system.webServer> </location>

en Windows netserver (no preguntes), asegurándose de no poner nada entre las comillas para la ruta de ubicación. Redirige una solicitud de la página de inicio antigua a la nueva página de inicio.


Para especificar el directorio raíz, debe configurarlo fuera del bloque de ubicación.

<configuration> <system.web> <authorization> <allow users=“*“/> </authorization> </system.web> </configuration>

y luego asegure su otra carpeta usando el bloque de ubicación

<location path=“AccessDenied.aspx“> <system.web> <authorization> <deny users=“?“/> </authorization> </system.web> </location>


Probablemente usas una autentificación de formularios no?

<authentication mode="Forms"> <forms loginUrl="~/Default.aspx" /> </authentication>

Esto resolverá tu problema. Una alternativa es:

<location path="~/Default.aspx"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location>


Prueba este:

<system.web> <urlMappings enabled="true"> <add url="~/" mappedUrl="~/default.aspx" /> </urlMappings> <authorization> <allow roles="admin"/> <deny users="*" /> </authorization> </system.web> <location path="Default.aspx"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location>


Se puede lograr por 2 métodos.

Método 1:

Puede configurar la ruta de redireccionamiento a http://mysite.com/default.aspx en IIS si algún usuario ingresa directamente a su sitio. En IIS7, puede hacerlo haciendo clic en Documento predeterminado. Aquí adjunto imagen para su referencia.

Método 2

Puede ir a través de esta URL ASp.NET Membership para configurar sus ajustes de configuración web.

Déjame saber si necesitas más detalles sobre esto.


Si desea especificar la raíz del directorio, use <location path="" >


Si solo quiere permitir que usuarios no autenticados accedan a default.aspx puede usar

<location path="Default.aspx"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location>

antes de <system.web> y configure esa página como predeterminada en su servidor web.
En Visual Studio puede seleccionar la página y "Establecer como página de inicio".

Si desea permitir el acceso a todos los archivos de la raíz, debe crear carpetas en las que coloque las páginas a las que los usuarios autenticados deben acceder.

Puede crear una carpeta segura donde puede colocar todas sus páginas protegidas y cambiar su web.config de esta manera:

<location path="Secure"> <system.web> <authorization> <deny users="?"/> </authorization> </system.web> </location>

removiendo

<authorization> <deny users="?"/> </authorization>


Utilizar esta :

<location path="Default.aspx"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location> <location path="~"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location>

Esto funciona para mi.


uso único

<location path="."> <system.web> <authorization> <allow users="*"/> </authorization> </system.web>

o no escriba la ruta, porque la ruta predeterminada es la raíz (.)