【发布时间】:2015-06-23 12:52:29
【问题描述】:
我需要检查某个路径的读/写权限。但最大的问题是,我不想检查我自己的,而是我想为其他用户检查它们。
这会检查运行程序的用户。
System.Security.Principal.NTAccount
我如何检查例如用户“OTHERUSER”?
这是我目前的代码。
private Boolean CheckZugriff(string str_projektpfad)
{
str_projektpfad = Path.GetDirectoryName(str_projektpfad);
bool isWriteAccess = false;
try
{
AuthorizationRuleCollection collection = Directory.GetAccessControl(str_projektpfad).GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount));
foreach (FileSystemAccessRule rule in collection)
{
if (rule.AccessControlType == AccessControlType.Allow)
{
isWriteAccess = true;
break;
}
}
}
catch (UnauthorizedAccessException ex)
{
isWriteAccess = false;
}
catch (Exception ex)
{
isWriteAccess = false;
}
if (!isWriteAccess)
{
//handle notifications
}
return isWriteAccess;
}
【问题讨论】:
-
你能告诉我们一些关于 Directory.GetAccessControl 的事情吗?
标签: c# permissions windows-users