Я работаю над проектом, в котором я должен выполнить проверку работоспособности файлов. Мне нужно убедиться, что текущий системный пользователь имеет доступ для чтения к файлу, и я сначала попытался сделать это с помощью:
var readPermission = new FileIOPermission(FileIOPermissionAccess.Read, filePath);
try
{
readPermission.Demand();
}
catch (SecurityException ex)
{
//handle the exception, which should be thrown if current user does NOT have the read permission
}
Это не сработало, например, не было сгенерировано исключение, и поэтому я попытался сделать это :
var readPermission = new FileIOPermission(FileIOPermissionAccess.Read, filePath);
if(! SecurityManager.IsGranted(readPermission))
{
throw new SecurityException(
String.Format("System user: {0} does not have read access to file {1}", User.Identity.Name, filePath)
);
}
API SecurityManager, похоже, в основном устарел, так что это также кажется тупиком. Есть ли какой-то другой способ узнать, какие права доступа пользователь имеет к файлу?