asp.net html iis-7 forms-authentication static-content

¿Cómo realizar la autenticación de formularios en páginas puramente HTML usando ASP.NET?



iis-7 forms-authentication (4)

Aunque esta es una vieja pregunta, encuentro el enlace en la respuesta de pomarc realmente útil. A continuación se muestra el resumen que es adecuado para IIS7.

En su web.config , agregue o modifique <handlers> bajo <system.webServer> :

<handlers> <add name="HTML" path="*.html" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" /> </handlers>

Reemplace el valor del verb con el requerido; Valor de scriptProcessor con la ruta correcta de su entorno.

Luego, agregue o modifique <compilation> y <httpHandlers> en <system.web> :

<compilation debug="false" strict="false" explicit="true"> <buildProviders> <!--Add below so .html file will be handled by ASP.NET (for use of Forms Authentication)--> <add extension=".html" type="System.Web.Compilation.PageBuildProvider" /> </buildProviders> </compilation> <httpHandlers> <!--Add below so .html file will be handled by ASP.NET (for use of Forms Authentication)--> <add verb="GET, HEAD, POST, DEBUG" path="*.html" type="System.Web.UI.PageHandlerFactory" /> </httpHandlers>

Reemplace el valor del verb con el requerido.

También puede incluir más extensiones separadas por comas '',''

Estoy usando la autenticación de formularios en IIS7 para proteger con contraseña un sitio de desarrollo, pero la autenticación parece haberse pasado cuando el sitio solo contiene archivos HTML estáticos + login.aspx + web.config.

Cuando cambié el nombre de los archivos a .aspx, se me indica con el formulario de inicio de sesión que no estoy haciendo nada sofisticado. Tengo un script de inicio de sesión muy simple y debería redirigirlo a index.html después.

¿Alguna sugerencia? Para resumir, todo el sitio usa HTML (por ahora) y necesita estar protegido por contraseña.

<authentication mode="Forms"> <forms name="appNameAuth" path="/" loginUrl="~/login.aspx" defaultUrl="index.html" protection="All" timeout="525600"> <credentials passwordFormat="Clear"> <user name="[user]" password="[password]" /> </credentials> </forms> </authentication> <authorization> <deny users="?" /> </authorization>


En IIS7, si desea proteger los archivos * .html o * .htm (u otras extensiones que no sean .net) bajo la autenticación de formularios, agregue las siguientes líneas a su web.config:

<compilation> <buildProviders> <add extension=".html" type="System.Web.Compilation.PageBuildProvider" /> <add extension=".htm" type="System.Web.Compilation.PageBuildProvider" /> </buildProviders> </compilation>

Y

<system.webServer> <handlers> <add name="HTML" path="*.html" verb="GET, HEAD, POST, DEBUG" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" /> <add name="HTM" path="*.htm" verb="GET, HEAD, POST, DEBUG" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" /> </handlers> </system.webServer>


Para hacer que los archivos HTML sean bloqueados por la autenticación de sus formularios, necesita que ASP.NET los sirva. Puede hacer esto en IIS asociando la (s) extensión (es) que necesita (por ejemplo, .html, .htm, etc.) con el aspnet_isapi.dll.

Una vez que ASP.NET da servicio a esos archivos, puede especificar los permisos para ellos como cualquier página aspx.

Para más información refiérase a MSDN :

De forma predeterminada, IIS procesa el contenido estático en sí mismo, como las páginas HTML y CSS y los archivos de imagen, y solo entrega las solicitudes al tiempo de ejecución de ASP.NET cuando se solicita una página con una extensión de .aspx, .asmx o .ashx.

IIS 7, sin embargo, permite las tuberías integradas de IIS y ASP.NET. Con unos pocos ajustes de configuración, puede configurar IIS 7 para invocar FormsAuthenticationModule para todas las solicitudes. Además, con IIS 7 puede definir reglas de autorización de URL para archivos de cualquier tipo. Para obtener más información, consulte Cambios entre la seguridad de IIS6 e IIS7, Seguridad de su plataforma web y Descripción de la autorización de URL de IIS7.

En pocas palabras, en versiones anteriores a IIS 7, solo puede usar la autenticación de formularios para proteger los recursos gestionados por el tiempo de ejecución de ASP.NET. Del mismo modo, las reglas de autorización de URL solo se aplican a los recursos administrados por el tiempo de ejecución de ASP.NET. Pero con IIS 7 es posible integrar FormsAuthenticationModule y UrlAuthorizationModule en la canalización HTTP de IIS, extendiendo así esta funcionalidad a todas las solicitudes.


Resolví el mismo problema hace unos días, siguiendo la publicación de fr33m3 @ 11-21-2007, 3:19 PM en este hilo: http://forums.asp.net/t/1184547.aspx seguir todo Los pasos del 2. al 5. ¡Y listo!

Espero que esto te pueda ayudar como me ha ayudado.