2010-11-28 10 views
0

フォルダのアクセス許可を格納するのに少し問題があります。私はそれらを書いてそれらを読むことに関するいくつかの文書を見つけることができました。私がやろうとしているのは、特定のユーザーのフォルダに対するアクセス許可を読み込むことです>保存して>アクセス許可を変更する>インストーラプログラムが終了した後、アクセス許可を元に戻します。C#フォルダのアクセス許可を格納する

元のフォルダのアクセス許可を格納して元に戻す方法を除いて、私はそれをすべてダウンしました(他の多くのコードのためです)。私は喜んであなたが提案する資料を読み、私たちはソフトウェアでいくつかの致命的なエラーが表示され、これはそれらの多くを解決するための一歩です。すべての助けを歓迎し、感謝しています

以下は、権限を設定する方法の例です。はい私は誰もが持っていることを知っているが、あなたは、あなたが変更アクセスルールを用いて行った後、あなたはちょうどDirectory.SetAccessControl(directoryName, dSecurity);を呼び出すことができますAddDirectorySecurityからDirectorySecurity dSecurityを返す場合、それは今のテストのためだけ

public void setPermDir() 
    { 
     try 
     { 
      string DirectoryName = "C:\\Temp1\\"; 

      Console.WriteLine("Adding access control entry for " + DirectoryName); 

      // Add the access control entry to the directory. 
      AddDirectorySecurity(DirectoryName, @"Everyone", FileSystemRights.FullControl, AccessControlType.Allow); 


      Console.WriteLine("Done."); 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine(e); 
     } 

     Console.ReadLine(); 
    } 

    // Adds an ACL entry on the specified directory for the specified account. 
    public static void AddDirectorySecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType) 
    { 
     // Create a new DirectoryInfo object. 
     DirectoryInfo dInfo = new DirectoryInfo(FileName); 

     // Get a DirectorySecurity object that represents the 
     // current security settings. 
     DirectorySecurity dSecurity = dInfo.GetAccessControl(); 

     // Add the FileSystemAccessRule to the security settings. 
     dSecurity.AddAccessRule(new FileSystemAccessRule(Account, 
                 Rights, 
                 ControlType)); 

     // Set the new access settings. 
     dInfo.SetAccessControl(dSecurity); 

    } 

答えて

0

です。

更新

だけSetAccessControlが動作しない場合は、次のステップは、明示的FileSystemSecurity.RemoveAccessRuleを使用して付与している権限を削除するかもしれません。

ちょうどあなたが作成FileSystemAccessRuleへの参照を保持:

FileSystemAccessRule toRemoveWhenDone = new FileSystemAccessRule(Account, Rights, ControlType); 
+0

はい、私はその方法を使用しています。特定のユーザーのアクセス許可を保存する方法がわかりませんでした。 –

関連する問題