Permisos de ficheros !

Necesito cambiarle los permisos a una carpeta o a un fichero de seguridad de usuarios de windows, esto me hace falta hacerlo desde .Net y mejor desde c#, ¿sabes si se puede hacer y como hacerlo?
2

2 respuestas

Respuesta
1
Para el tema que me comentas, deberías ir directamente a la clase FileIOPermission, FileIOPermissionAccess de System. Security. Permissions.
Los ejemplos siguientes muestran el código que utiliza FileIOPermission. Después de las dos siguientes líneas de código, el objeto f representa permiso para leer todos los archivos de los discos locales del equipo cliente.
[Visual Basic]
Dim f As New FileIOPermission(PermissionState.None)
f.AllLocalFiles = FileIOPermissionAccess.Read
[C#]
FileIOPermission f = new FileIOPermission(PermissionState.None);
f.AllLocalFiles = FileIOPermissionAccess.Read;
[Visual Basic, C#] Después de las dos siguientes líneas de código, el objeto f2 representa permisos para leer C:\test_r, y leer y escribir en C:\example\out.txt. Read y Write representan los permisos de archivo y carpeta, tal como se describió anteriormente.
[Visual Basic]
Dim f2 As New FileIOPermission(FileIOPermissionAccess.Read, "C:\test_r")
f2.AddPathList(FileIOPermissionAccess.Write Or _
FileIOPermissionAccess.Read, "C:\example\out.txt")
[C#]
FileIOPermission f2 = new FileIOPermission(FileIOPermissionAccess.Read, "C:\\test_r");
f2.AddPathList(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, "C:\\example\\out.txt");
[C++, JScript] No hay ejemplos disponibles para C++ o JScript. Para ver un ejemplo de Visual Basic o C#, haga clic en el botón de filtro de lenguaje situado en la esquina superior izquierda de la página.
Hola amigo.
Necesito saber algo más.
Como es que le digo que sea un determinado user, por ejemplo, administrador full control, pepito denegarlo.
Otra vía que estoy viendo como alternativa es con un .bat usando el comando de msdos cacls.exe pero no se como ejecutar ese .bat desde .net pasándole parámetros que ya les puse, ejemplo:
Lotes.bat juan c:\system n que significaría denegar a juan system.
Responde las dos si puedes y mil gracias...
lo más sencillo es lanzar un .bat
System.Process myProcess = Process.Start(@"N:\pruebas_NET\pruebasANSI\Debug\prueba.exe");
Esto lanzaría un ejecutable. Y también tiene la posibilidad de pasarle parámetros.
Para el primer problema... pues mucho no te puedo ayudar ahora mismo porque no tengo tiempo de probarlo yo mismo...
Respuesta
1
Si no me equivoco eso se hace mediante unas llamadas a la API de windows.
Te sugiero que mires en el MSDN de microsoft, no conozco esas funciones, pero si he utilizado desde Perl funciones parecidas, de ahí que te diga lo de la API.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas