2011-08-16 11 views
5

Tenemos un sitio de intranet IIS7 que se ejecuta en una cartera integrada que es principalmente ASP.Net con algunas páginas ASP clásicas heredadas. El sitio permite el acceso anónimo a la mayoría de las áreas, pero usa la Autenticación de Windows para proteger ciertas carpetas. Las solicitudes a las páginas ASP.Net en las carpetas protegidas se comportan como se espera (los usuarios autorizados pueden verlas, otras se niegan), pero cualquier usuario puede ver cualquier página ASP clásica en las carpetas protegidas, independientemente de los permisos.Autenticación de Windows que no funciona para páginas ASP clásicas (pero funciona para páginas ASP.Net con el mismo sitio)

Sospecho que el módulo de autenticación de Windows no se invoca para solicitudes a páginas ASP clásicas. Nos estamos ejecutando en modo de interconexión integrado, y encontré este artículo (http://learn.iis.net/page.aspx/244/how-to-take-advantage-of-the-iis7-integrated-pipeline/) que indica que debe eliminar y volver a agregar módulos explícitamente si desea aprovechar la interconexión integrada para solicitudes que no sean de ASP.Net. He intentado copiar el ejemplo del artículo sólo reemplazando FormsAuthenticationModule con WindowsAuthenticationModule añadiendo lo siguiente al web.config en la raíz de la aplicación:

<system.webServer> 
<modules> 
     <remove name="WindowsAuthentication" /> 
     <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="" /> 
</modules> 
</system.webServer> 

Sin embargo, todavía están siendo atendidos páginas ASP clásico independientemente de permiso.

Respuesta

2

Las páginas ASP clásicas ignoran por completo web.config o cualquier .config en realidad.

La única manera de manejar esto para ASP clásico es a través de IIS, tendrá que mover las páginas ASP clásicas para que estén debajo de un sitio web virtual separado para ese sitio web virtual establezca Autenticación de Windows y deshabilite el Acceso anónimo.

Esto podría ayudar también:
IIS7: Setup Integrated Windows Authentication like in IIS6

+0

Gracias @shadowWizard, pero estoy confundido. Pensé que uno de los beneficios de la canalización integrada era que podía aplicar la seguridad de ASP.Net a cualquier solicitud (ASP.Net, ASP clásico, incluso contenido estático - html e imágenes). Del artículo al que me he vinculado: "Permitir que los servicios proporcionados por módulos nativos y gestionados se apliquen a todas las solicitudes, independientemente del controlador. Por ejemplo, la Autenticación de formularios administrada se puede usar para todo el contenido, incluidas páginas ASP, CGI y archivos estáticos. " Si se puede aplicar la autenticación de formularios administrados, ¿por qué no se administra la autenticación de Windows? –

+0

No soy experto en esto, pero lo que sí sé es que la Autenticación de Windows significa lo siguiente: el servidor envía al navegador del cliente un encabezado que dice "Identifícate". El navegador del cliente envía las credenciales automáticamente o le pide al usuario que las escriba, según el tipo de navegador y la configuración. Ahora, todo esto sucede "detrás de escena" y en el bajo nivel de comunicación entre el navegador y el servidor. Autenticación de formularios es nivel superior. Esa es mi elección sobre esto, espero que alguien que sabe mejor aparezca y lo explique con mayor precisión. –

Cuestiones relacionadas