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とは何かをデバッグでチェックインすると、これが得られます
誰でもこれを理解するのを手伝ってもらえますか?