3

Windows 8 と 7 の両方で実行する必要がある .net 3.5 アプリケーションを開発しています。

アプリケーションの一部として、C:\ProgramData の下に新しいフォルダーを作成しています。

フォルダーを作成した後、次の ACL を設定しました - 全員が読み書きできるようにします。

 var directorySecurity = directoryInfo.GetAccessControl();
 var worldSecurityIdentifier = new SecurityIdentifier(WellKnownSidType.WorldSid, null);     
 directorySecurity.AddAccessRule(new FileSystemAccessRule(worldSecurityIdentifier, FileSystemRights.Read, AccessControlType.Allow));
 directorySecurity.AddAccessRule(new FileSystemAccessRule(worldSecurityIdentifier, FileSystemRights.Write, AccessControlType.Allow));

Windows 8 では、次の動作に遭遇します。ファイルをそのディレクトリにコピーすると、ファイルのプロパティのセキュリティ タブを見ると、これが表示されます。

ディレクトリにコピーされたファイルの [セキュリティ] タブ

このユーザーが誰で、どのように作成されたのかわかりません。また、全員に定義した ACL はどこにありますか?

この不明な SID は、私が Everyone に設定した ACL を取得したようです。

これは、4 ではなく .net 3.5 で開発していることが原因ではないかと思いましたが、ターゲット フレームワークを 4 に変更しても問題は解決しませんでした。

worldSecurityIdentifierとは何かをデバッグでチェックインすると、これが得られます

ここに画像の説明を入力

誰でもこれを理解するのを手伝ってもらえますか?

4

1 に答える 1