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 (.)