3

ディレクトリにアクセス許可を保存する方法を見つけようとしています。私は現在 SetACL を使用して支援しています。それなしでディレクトリ/レジストリの所有権を変更できる場合は、それが望ましいですが、それは別の話です。例はこれです:

現在の所有者とその所有者の権限を確認してください。ボタンのクリックで権限と所有者に変更>別のボタンをクリックすると元に戻ります。

なぜという疑問を解決するために、私のチームは技術サポートを行っています。コンピューターにリモート接続し、t/s を実行して終了します。パーミッションを変更して元に戻せるようにする必要があります。

どんな助けでも大歓迎です。

4

1 に答える 1

4

System.ManagementおよびSystem.Management.Instrumentation名前空間を使用する場合、Directory.GetAccessControlメソッドを使用して、フォルダーにアクセスできるユーザーを取得できます。AddAccessRuleその後、 メソッドとメソッドを使用してSetAccessControl、新しい権限を実際に適用できます。完了したら、新しい権限を削除できます。フォルダーのアクセス許可を変更する方法については、次の記事を参照してください。

http://www.redmondpie.com/applying-permissions-on-any-windows-folder-using-c/

この著者が使用する基本的なコードは次のとおりです。

DirectoryInfo myDirectoryInfo = new DirectoryInfo(yourFolderHere);

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

// Builds a new user string for who we want to give permissions to
string User = System.Environment.UserDomainName + "\\" + yourUserName; 

// Creates the permissions to apply 
myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(User, 
                                  FileSystemRights.FullControl, AccessControlType.Allow));

// Set the new access settings. 
myDirectoryInfo.SetAccessControl(myDirectorySecurity);

// Showing a Success Message
MessageBox.Show("Permissions Altered Successfully");
}

所有者の設定に関しては、その方法に関する優れた SO 記事を次に示します。

C# - DirectorySecurity.SetOwner() の使用方法 困っている

ただし、所有者を他の人に設定したい場合 (ユーザーが所有権を割り当てるアクセス権を既に持っている場合、所有権をユーザーに割り当てる必要はないと想定しているため)、この上記の方法は機能しません。信じない。所有者を自分以外の人に設定する方法に関するドキュメントを見つけました。リンクは次のとおりです。

http://blog.salamandersoft.co.uk/index.php/2009/10/setting-the-owner-of-files-and-directories-in-c/

于 2011-05-21T22:53:36.170 に答える