Protección de archivos con ASP.NET 2 e IIS 6

En ciertas ocasiones, es necesario controlar el acceso a los recursos o archivos de nuestra aplicación, bien sea por permitir sólo a usuarios registrados o con la intención de monitorear el número de descargas de éstos.

Todos los archivos relacionados a ASP.NET (aspx, asmx, ashx, asax, etc) son procesados por el runtime de ASP.NET y es por este motivo que se puede especificar que controlador HTTP se hará cargo de un determinado documento, a su vez también están disponibles los mecanismos de autenticación y autorización para éstos.

En versiones anteriores de IIS, para hacer que otro tipo de archivos (html, zip, pdf, etc) sean procesados por ASP.NET, había que configurar manualmente para cada tipo de archivo que queríamos proteger, aparte de que este proceso era algo tedioso, estaba el inconveniente de que se añadía una carga extra al servidor. Sin embargo, con IIS 6 y ASP.NET 2, este proceso ha cambiado, puesto que ahora se puede delegar el procesamiento de este tipo de archivos a DefaultHttpHandler, sin que esto represente mucha sobrecarga.

Para hacer esto, primero tenemos que configurar el directorio virtual como sigue:

Propiedades del Directorio Virtual
Propiedades del Directorio Virtual

Mapeo de archivos de la aplicación
Mapeo de archivos de la aplicación

Asignación del módulo ISAPI de ASP.NET
Especificar la ubicación del módulo ISAPI de ASP.NET (%WINDIR%\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll) para que los archivos sean procesados por ésta.

Una vez hecho los pasos descritos en las imágenes, podemos usar el mecanismo -clásico- de autenticación/autorización de ASP.NET para lograr el objetivo de esta entrada :D.

xml:
<?xml version="1.0"?>
<configuration>
    <system.web>
        <compilation debug="false" />
      <authentication mode="Forms">
        <forms name="__auth" defaultUrl="default.aspx" loginUrl="login.aspx" path="/">
          <credentials passwordFormat="Clear">
            <user name="alex" password="demo"/>
          </credentials>
        </forms>
      </authentication>
    </system.web>

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

El archivo de configuración mostrado, deniega el acceso de usuarios anónimos a los contenidos del directorio downloads.

Recursos relacionados

4 Replies to “Protección de archivos con ASP.NET 2 e IIS 6”

  1. quisiera encontrar algo que me ayude a encriptar mis archivos y documentos e impedir que entren a los mismos, que sea sencillo y facil de usar. Me pueden ayudar. ?????por favor..........

  2. hola, estoy trabajando con c#, asp.net y haciendo webservices en Telecom Argentina, y ocurre que hay app en PHP que no me mandan las credenciales de seguridad de windows, y no se puede usar el web service... alguna idea, alguna pista de cómo debe enviar el PHP, o cómo configurar el IIS donde reside el web service?

Comments are closed.