Estoy intentando escribir una herramienta de línea de comandos que dará a IIS7.5 en Windows Server 2008 acceso de escritura a una carpeta en wwwroot, para que una aplicación web tenga acceso para escribir en una carpeta específica dentro de su directorio base . Anteriormente, usted haría esto asignando el grupo IIS_WPG en la carpeta que le da a ese grupo acceso de modificación.C# code para otorgar automáticamente acceso de escritura IIS a una carpeta en Windows Server 2008? Actualmente arroja la excepción
En Server 2008 estoy intentando hacer lo mismo con IIS_IUSRS, pero se está produciendo una excepción.
Aquí está el código:
private static void ManagePermissions(string directory, string account, FileSystemRights rights, AccessControlType controlType, bool addAccess)
{
DirectoryInfo directoryInfo = new DirectoryInfo(directory);
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
if (addAccess)
directorySecurity.AddAccessRule(
new FileSystemAccessRule(account, rights, controlType));
else
directorySecurity.RemoveAccessRule(
new FileSystemAccessRule(account, rights, controlType));
directoryInfo.SetAccessControl(directorySecurity);
}
La llamada a este método es el siguiente:
ManagePermissions(
"c:\inetpub\wwwroot",
"MACHINENAME\IIS_IUSRS",
FileSystemRights.Modify,
AccessControlType.Allow,
true);
Al ejecutar esa llamada a ManagePermissions se produce una excepción con el tipo y el mensaje siguiente:
System.Security.Principal.IdentityNotMappedException:
Some or all identity references could not be translated.
He comprobado varias veces para asegurarme de que MACHINENAME \ IIS_IUSRS es un n coincidencia exacta con el usuario en el administrador de usuarios local en la máquina en la que se está ejecutando este código. Esta máquina no participa en un dominio de Windows.
Deseo saber si necesita alguna otra aclaración.
Y esta aplicación de asignación de derechos se ejecuta bajo una cuenta de usuario que ya tiene acceso para proporcionar tales derechos? –
Sí. Esta aplicación hace varias cosas como adminster IIS, crea nuevas carpetas y copia archivos en estas mismas rutas de directorio. –