none
フォルダのアクセス権限 RRS feed

  • 質問

  • いつもお世話になっております。

    下記の通り、フォルダのアクセス権限を追加したいのですが、

    実際にフォルダプロパティのセキュリティタブで確認してみると

    ユーザーは登録されているのですが、

    フルコントロールになっていません。

    全てのチェックがはずれています。

    アドバイスいただけますでしょうか。

     

    szPath:フォルダパス

    szUserName:ユーザー名

     


       DirectorySecurity directorySecurity;
       directorySecurity = Directory.GetAccessControl( szPath, AccessControlSections.All );

       FileSystemAccessRule rule = new FileSystemAccessRule
        ( szUserName, FileSystemRights.FullControl, AccessControlType.Allow );
       directorySecurity.AddAccessRule( rule );

       Directory.SetAccessControl( szPath, directorySecurity );

    2007年12月19日 6:38

回答

  • こんにちは、ファクトです。

     

    おそらく、サブフォルダおよびファイルに対して、フルコントロールが割り当てられていないため、全てのチェックボックスが外れて見えているのかと思います。「詳細」ボタンでアクセス制御の設定を表示し、「表示/編集」ボタンでアクセス許可のエントリを確認すれば、適用先がこのフォルダのみになっているのが分かると思います。

     

    で、サブフォルダおよびファイルにも、フルコントロールを適用するには、FileSystemAccessRuleを生成する際に、以下のコンストラクタを使えば実現できます。

     

    FileSystemAccessRule rule = new FileSystemAccessRule(
      userName,
      FileSystemRights.FullControl,
      InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
      PropagationFlags.None,
      AccessControlType.Allow);

    2007年12月20日 0:23

すべての返信

  • こんにちは、ファクトです。

     

    おそらく、サブフォルダおよびファイルに対して、フルコントロールが割り当てられていないため、全てのチェックボックスが外れて見えているのかと思います。「詳細」ボタンでアクセス制御の設定を表示し、「表示/編集」ボタンでアクセス許可のエントリを確認すれば、適用先がこのフォルダのみになっているのが分かると思います。

     

    で、サブフォルダおよびファイルにも、フルコントロールを適用するには、FileSystemAccessRuleを生成する際に、以下のコンストラクタを使えば実現できます。

     

    FileSystemAccessRule rule = new FileSystemAccessRule(
      userName,
      FileSystemRights.FullControl,
      InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
      PropagationFlags.None,
      AccessControlType.Allow);

    2007年12月20日 0:23
  • ご提示いただいたほうほうでバッチリ解決しました。

    ありがとうございました。

    2007年12月20日 11:27