В .NET есть два способа сделать это.
Пространство имен System.Security.Permissions содержит необходимые атрибуты и классы. Вы можете использовать атрибуты и написать декларативный код или использовать классы с императивным кодом.
Например, для FileIO вы должны сделать это
Декларативный :
Обычно вы аннотируете метод, и на основе SecurityAction генерируются исключения, если текущий или вызывающий код не имеет указанного разрешения
[FileIOPermissionAttribute(SecurityAction.PermitOnly,
ViewAndModify = "C:\\example\\sample.txt")]
Императив : Здесь вы можете программно проверить разрешения
FileIOPermission f = new FileIOPermission(PermissionState.None);
f.AllLocalFiles = FileIOPermissionAccess.Read;
try
{
f.Demand();
}
catch (SecurityException s)
{
Console.WriteLine(s.Message);
}
Обязательный или декларативный, ваш код должен реагировать на исключение. Перечисление SecurityAction объясняет, как они работают, некоторые проверяют, есть ли у текущего кода разрешение, другие также проверяют вызывающий код. Это перечисление имеет те же соответствующие методы (Deny, Assert и т. Д.), Которые можно использовать в императивном коде.
И наконец, Пространство имен System.Security.Permissions не имеет ничего для процессов, поэтому я предполагаю, что вы не можете на самом деле проверять разрешения здесь. Хотя это статья для .NET 1.1 , эта статья по безопасности довольно актуальна. (Не имеет цветной код, хотя = (