[C#] ファイルのアクセス権を取得する

来源:互联网 发布:linux rm -rf 返回-1 编辑:程序博客网 时间:2024/06/12 05:09
C#でファイルのアクセス権を取得してみます。
ファイルのアクセス権を取得するためには、FileクラスのGetAccessControlメソッドを用います。

以下がアクセス権を取得するコード例となります。

forを用いた場合のコード

/*// usingに以下を追加using System.IO;using System.Security.AccessControl;using System.Security.Principal; */private void button1_Click(object sender, EventArgs e){  string filePath = @"C:\develop\text.txt";  string ace = "AccessControlType\tAccountName\tFileSystemRights\tIsInherited";  textBox1.Text += ace +"\r\n";  FileSecurity security = File.GetAccessControl(filePath);  AuthorizationRuleCollection rules = security.GetAccessRules(true, true, typeof(NTAccount));  for (int i = 0; i < rules.Count; i++ ) {    FileSystemAccessRule fsar = (FileSystemAccessRule)rules[i];    ace = fsar.AccessControlType        + "\t" + (fsar.IdentityReference as NTAccount).Value        + "\t" + fsar.FileSystemRights.ToString()        + "\t" + fsar.IsInherited.ToString();    textBox1.Text += ace + "\r\n";  }}

foreachを用いた場合のコード

/*// usingに以下を追加using System.IO;using System.Security.AccessControl;using System.Security.Principal; */private void button1_Click(object sender, EventArgs e){  string filePath = @"C:\develop\text.txt";  string ace = "AccessControlType\tAccountName\tFileSystemRights\tIsInherited";  textBox1.Text += ace +"\r\n";  FileSecurity security = File.GetAccessControl(filePath);  foreach (FileSystemAccessRule rule in security.GetAccessRules(true, true, typeof(NTAccount))) {    ace = rule.AccessControlType        + "\t" + (rule.IdentityReference as NTAccount).Value        + "\t" + rule.FileSystemRights.ToString()        + "\t" + rule.IsInherited.ToString();    textBox1.Text += ace +"\r\n";  }}

実行結果



登録日 :2010-11-21    最終更新日 :2011-02-21
この記事に関連するページ
  • [C#] ディレクトリにアクセス権を追加する
  • [C#] ディレクトリのアクセス権を削除する
  • [C#] 継承されているディレクトリのアクセス権を変更、削除する
  • [C#] ディレクトリのアクセス権を取得する
  • [C#] ディレクトリへのアクセス権が意図したとおりにならない (「特殊なアクセス許可」になってしまう)
このページのタグ:[C#] [アクセス権] [セキュリティ]
0 0