0

filesystemwatcher を試してみましたが、ファイルへのアクセスを監視するのには役に立ちません。そうするためのインターフェースはありますか?

4

3 に答える 3

1

Catch UnauthorizedAccessException ,if caught then You have no access.

于 2012-10-17T07:58:49.153 に答える
0

簡単な監査には、監査ポリシーを使用できます。実際のアクセスが発生する前にアクションを実行する (または複雑なロジックに基づいてアクセスを防止する) 場合は、ファイルシステムフィルタードライバーを使用する必要があります。独自のドライバーを作成するか (カーネル モード ドライバーの作成スキルと数か月の作業が必要)、ドライバーを提供し、.NET を含むユーザー モードでビジネス ロジックを記述できる CallbackFilter 製品を使用します。

于 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 に答える