Aquí hay un problema con IIS 7.5 y ASP.NET que he estado investigando y con el que no llegué a ninguna parte. Cualquier ayuda sería muy apreciada.
Mi pregunta es: usando ASP.NET en IIS 7.5, ¿cómo permite IIS y / o el sistema operativo que la aplicación web escriba en una carpeta como C:\dumpcuando se ejecuta con plena confianza? ¿Cómo es que no tengo que agregar explícitamente acceso de escritura para el usuario del grupo de aplicaciones (en este caso ApplicationPoolIdentity)?
Esto lo sé:
- En IIS 7.5, la identidad predeterminada para un grupo de aplicaciones es
ApplicationPoolIdentity. ApplicationPoolIdentityrepresenta una cuenta de usuario de Windows llamada "IIS APPPOOL \ AppPoolName", que se crea cuando se crea el grupo de aplicaciones, donde AppPoolName es el nombre del grupo de aplicaciones.- El usuario "IIS APPPOOL \ AppPoolName" es, por defecto, un miembro del
IIS_IUSRSgrupo. - Si está ejecutando bajo Plena confianza, su aplicación web puede escribir en muchas áreas del sistema de archivos (con exclusión de carpetas como
C:\Users,C:\Windows, etc.). Por ejemplo, la aplicación tendrá acceso a escritura en algunas carpetas, como,C:\dump. - De forma predeterminada, el
IIS_IUSRSgrupo no tiene acceso de lectura o escrituraC:\dump(al menos no acceso visible a través de la pestaña "Seguridad" en el Explorador de Windows). - Si niega el acceso de escritura
IIS_IUSRS, obtendrá una SecurityException cuando intente escribir en la carpeta (como se esperaba).
Entonces, teniendo todo eso en cuenta, ¿cómo se otorga acceso de escritura al usuario "IIS APPPOOL \ AppPoolName"? El proceso w3wp.exe se ejecuta como este usuario, entonces, ¿qué le permite a este usuario escribir en una carpeta a la que no parece tener acceso explícito?
Tenga en cuenta que entiendo que esto probablemente se hizo por conveniencia, ya que sería difícil otorgarle a un usuario acceso a cada carpeta en la que necesita escribir si se está ejecutando con Full Trust. Si desea limitar este acceso, siempre puede ejecutar la aplicación en Confianza media. Estoy interesado en conocer la forma en que el sistema operativo y / o IIS permite que estas escrituras se lleven a cabo, aunque parece que no hay acceso explícito al sistema de archivos otorgado.





Haga clic derecho en la carpeta.
Haga clic en Propiedades
Haga clic en la pestaña Seguridad. Verás algo como esto:
Marque / desmarque cualquier acceso que necesite otorgar a la cuenta
Haga clic en el botón Aplicar y luego en Aceptar.
fuente
Cada grupo de aplicaciones en IIs crea su propia carpeta de usuario segura con permiso de lectura / escritura COMPLETO de forma predeterminada en c: \ users. Abra la carpeta Usuarios y vea qué carpetas del grupo de aplicaciones hay, haga clic derecho y verifique sus derechos para la cuenta virtual del grupo de aplicaciones asignada. Debería ver su cuenta de grupo de aplicaciones agregada ya con acceso de lectura / escritura asignado a su raíz y subcarpetas.
De modo que ese tipo de acceso al almacenamiento de archivos se realiza automáticamente y debería poder escribir lo que quiera en las carpetas de la cuenta de usuario de los grupos de aplicaciones sin cambiar nada. Es por eso que se crearon cuentas de usuario virtuales para cada grupo de aplicaciones.
fuente
Intenté esto para solucionar problemas de acceso a un sitio web de IIS, que se manifestó como algo similar a lo siguiente en los registros de eventos → Windows → Aplicación:
Nombre de registro: aplicación Fuente: ASP.NET 4.0.30319.0 Fecha: 1/5/2012 4:12:33 PM Id. De evento: 1314 Categoría de tarea: evento web Nivel: información Palabras clave: clásico Usuario: N / A Computadora: SALTIIS01 Descripción: Código de evento: 4008 Mensaje de evento: error de autorización de archivo para la solicitud. Hora del evento: 1/5/2012 4:12:33 PM Hora del evento (UTC): 1/6/2012 12:12:33 AM Id. De evento: 349fcb2ec3c24b16a862f6eb9b23dd6c Secuencia de eventos: 7 Suceso del evento: 3 Código de detalle del evento: 0 Información de la aplicación: Dominio de aplicación: / LM / W3SVC / 2 / ROOT / Application / SNCDW-19-129702818025409890 Nivel de confianza: completo Ruta virtual de la aplicación: / Aplicación / SNCDW Ruta de la aplicación: D: \ Sites \ WCF \ Application \ SNCDW \ Nombre de la máquina: SALTIIS01 Procesar informacion: ID de proceso: 1896 Nombre de proceso: w3wp.exe Nombre de cuenta: iisservice Información requerida: URL de solicitud: http: //webservicestest/Application/SNCDW/PC.svc Ruta de solicitud: /Application/SNCDW/PC.svc Dirección de host del usuario: 10.60.16.79 Usuario: js3228 Está autenticado: verdadero Tipo de autenticación: negociar Nombre de la cuenta del hilo: iisserviceAl final tuve que darle al
Everyonegrupo de Windows acceso de lectura a esa carpeta para que funcione correctamente.fuente