2008-10-20 17 views
5

Mi aplicación web escribe en varias carpetas (registros, cargas, etc.) y siempre establecí estos permisos manualmente a través de mi proveedor de alojamiento.¿Puedo hacer que una carpeta sea editable en Medium trust?

Me gustaría crear una secuencia de comandos de instalación que realice esto en instalaciones nuevas. ¿Es esto posible bajo la confianza media?

Ni siquiera puedo llamar a File.GetAccessControl, y mucho menos File.SetAccessControl, pero de todos modos no necesito un "gran martillo". Solo quiero hacer lo que el ISP (en este caso GoDaddy) me permite hacer a través de una consola de administración.

Creo que PHP puede hacer esto, y estaría dispuesto a considerar una página PHP para este propósito si eso es posible.

+0

¿Ha comprobado si el usuario que ejecuta el script tiene acceso para configurar los controles de acceso de Windows? –

Respuesta

2

Ok asumiendo que usted está utilizando IIS y asp.net de la forma habitual debe tener una cuenta asp.net en virtud de la cual el marco ejecuta su aplicación en su nombre.

La aplicación web se ejecuta en una única cuenta y, a través de la autenticación, los usuarios tienen acceso programático para hacer las cosas que su "cuenta maestra" lleva a cabo en su nombre.

pensar en él como buscando algo como esto ....

Asp.net carga su aplicación (ASP cuenta) conecta usuario (cuenta) IUSER usuario inicia sesión (? Dependiendo de cuenta utilizada podría ser ventanas auth o formas de autenticación, ect) peticiones

usuario que hacer algo con sus páginas web prestados en virtud de sus cuentas de cheques ...

ASP.NET usuario tiene permiso para realizar la operación (acount asp.net) si el usuario puede hacer esto asp.net actúa sobre la acción solicitada (asp.n et cuenta)

Por lo tanto ... Ya debe tener los permisos pertinentes en esa cuenta asp.net para hacer lo que necesita hacer.

Hay un nivel sobre todo eso también ... el servidor IIS se ejecuta normalmente en la cuenta del sistema/servicio de red.

Así que la pregunta es realmente ... ¿Cómo desea otorgar los permisos a un posible usuario para escribir en el servidor.

Eche un vistazo a las clases providerproperty y roleprovider en el marco que debería poder heredarlas y cree una clase ActiveDirectoryRoleProvider y ActiveDirectoryMembershipProvider que se autentique en función de la pertenencia a roles de los usuarios en AD, o si prefiere solo autenticar contra un DB con las clases básicas de proveedores de asp.net.

Espero que esto ayude.

+0

Oh, me gustaría agregar, si necesita anular el nivel de confianza del código, puede hacerlo en función de que el usuario tenga permiso para hacerlo. Entonces, si encuentra que la "confianza media" no es suficiente y el usuario autenticado es un administrador de sistema, entonces creo que puede anular en función del usuario que exija los permisos. No obstante, creo que no será necesario. – War

+0

Gracias por la entrada. Esto arroja un poco de luz sobre las diversas cuentas utilizadas en una configuración típica. Si la aplicación se conecta a través de la cuenta IUSR, ¿cómo aprovecharía los permisos disponibles solo para la cuenta ASP.NET? – harpo

Cuestiones relacionadas