Inicio > .Net, C#, Computación, Informática, Programación > Verificar accesos y permisos a una carpeta en una aplicación .net

Verificar accesos y permisos a una carpeta en una aplicación .net


En este post quiero explicarles cómo pueden hacer para comprobar permisos en un directorio, esto aplica para aplicaciones Web, de escritorio y demás.. lo pueden lazar desde una dll o librería de clases.

  1. Comprobar si un directorio existe:
if (System.IO.Directory.Exists(strRuta_Informacion))

Lo primero entonces es comprobar que el directorio existe para eso usamos el anterior código que nos devolverá un true o false. No solo comprobamos si existe sino si se tiene acceso al compartirlo cuando el directorio está en red.

  1. Comprobar accesos y autorización:
try
{
AuthorizationRuleCollection collection = 
Directory.GetAccessControl(strRuta_Informacion).GetAccessRules(true,
 true, typeof(System.Security.Principal.NTAccount));
foreach (FileSystemAccessRule rule in collection)
{
if (rule.AccessControlType == AccessControlType.Allow)
{
break;
}
}
}
catch (UnauthorizedAccessException ex)
{
}
catch (Exception ex)
{
}

Con este código podemos saber si estamos autorizados para ver y leer la carpeta debemos capturar una excepción y luego también de finalizar el foreach si no encontramos permisos es porque no tenemos ninguna acceso a dicha carpeta.

Este código no nos sirve  o no es muy fiable para comprobar los permisos de escritura para eso recomiendo usar el siguiente:

  1. Comprobar permisos de escritura sobre una carpeta:
try
{
using (FileStream fs = File.Create(Path.Combine(strRuta_Informacion,
 "AccessTemp.txt"), 1, FileOptions.DeleteOnClose))
{
fs.Close();
}

}
catch (Exception ex)
{
}

Este código es el que recomiendo para tal fin, lo que hace es crear un archivo temporal dentro de la ruta, este archivo lo cerramos inmediatamente de creado y se borra. esto nos asegura por completo que tenemos permiso de escritura sobre esa carpeta.

Si tienen alguna duda o una mejor forma de detectar estos permisos y accesos me cuentan Gracias.

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: