我已经尝试过 filesystemwatcher - 但是监视对文件的访问是没有用的。有没有接口可以做到这一点?
问问题
771 次
3 回答
1
抓住UnauthorizedAccessException
,如果被抓住,那么你无权访问。
于 2012-10-17T07:58:49.153 回答
0
对于简单的审计,您可以使用审计策略。如果您想在实际访问发生之前采取行动(或基于一些复杂的逻辑阻止访问)m,那么您需要使用文件系统过滤器驱动程序。编写您自己的(内核模式驱动程序编写技能和几个月的工作)或使用我们的 CallbackFilter 产品,该产品提供驱动程序并允许您在包括 .NET 在内的用户模式下编写业务逻辑。
于 2012-10-17T08:57:08.577 回答
0
您可以阅读有关FileIOPermission
课程的更多信息。
或使用这样的自定义方法:
public static bool HasWritePermissionOnDir(string path)
{
var writeAllow = false;
var writeDeny = false;
var accessControlList = Directory.GetAccessControl(path);
if(accessControlList == null)
return false;
var accessRules = accessControlList.GetAccessRules(true, true, typeof(System.Security.Principal.SecurityIdentifier));
if(accessRules ==null)
return false;
foreach (FileSystemAccessRule rule in accessRules)
{
if ((FileSystemRights.Write & rule.FileSystemRights) != FileSystemRights.Write)
continue;
if (rule.AccessControlType == AccessControlType.Allow)
writeAllow = true;
else if (rule.AccessControlType == AccessControlType.Deny)
writeDeny = true;
}
return writeAllow && !writeDeny;
}
于 2012-10-17T07:29:46.793 回答