solo sacar quitar puedo puede propiedades programa para los lectura imposible cualquier carpeta cambiar cambia atributos atributo archivos archivo c# security file

c# - sacar - ¿Cómo cambio programáticamente los atributos de seguridad de un archivo para que cualquier usuario pueda eliminar el archivo?



quitar solo lectura carpeta windows cmd (2)

Tengo un servidor escrito en C # que hace uso de la suplantación.

Me gustaría saber cómo puedo cambiar los atributos de seguridad de un archivo para que cualquier usuario pueda eliminarlo.

Mi servidor se hace pasar por un usuario y luego crea un archivo temporal. Más tarde, tengo que eliminar el archivo, pero en ese momento, ya no me hago pasar por el usuario que creó el archivo y cuando se intenta eliminar el archivo, se genera una excepción. Mi suposición es que, en el momento en que creo el archivo, debería poder cambiar los atributos de seguridad para permitir que cualquier usuario elimine el archivo.

¿Cómo puedo lograr esto (C # preferido pero p / invoke también funcionará).

Actualmente estoy usando .NET 1.1, por lo que un método que pueda implementarse en 1.1 sería apreciado.


En lugar de permitir que todos eliminen el archivo, ¿por qué no agregar entradas solo para las personas que necesitan eliminar el archivo? Según su publicación, probablemente sea su cuenta de usuario y el proceso de origen. Permitir literalmente que todos eliminen el archivo se abre a problemas de seguridad en el futuro.

public static void AllowIdentityToDelete(FileInfo file, string identity) { var rule = new FileSystemAccessRule( identity, FileSystemRights.Delete | FileSystemRights.DeleteSubdirectoriesAndFiles, AccessControlType.Allow); var acls = file.GetAccessControl(); acls.AddAccessRule(rule); file.SetAccessControl(acls); }

Deberá ingresar la Identidad adecuada para el usuario en cuestión.


Parece que desea utilizar el método System.IO.File.SetAccessControl para agregar una ACL que le da al grupo incorporado "Todos" la capacidad de eliminar el archivo. La documentación de MSDN tiene una muestra decente de agregar y eliminar registros de ACL en un archivo.