コードは次のとおりです。
var sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
var directorySecurity = new DirectorySecurity();
directorySecurity.AddAccessRule(new FileSystemAccessRule(sid, FileSystemRights.FullControl, AccessControlType.Allow));
Directory.CreateDirectory(Path.GetDirectoryName(this.PathToSettings.LocalPath), directorySecurity);
var fileSecurity = new FileSecurity();
fileSecurity.AddAccessRule(new FileSystemAccessRule(sid, FileSystemRights.FullControl, AccessControlType.Allow));
using (var fs = new FileStream(this.PathToSettings.LocalPath, FileMode.Create, FileSystemRights.FullControl, FileShare.None, 1024, FileOptions.None, fileSecurity))
{
var bytes = Encoding.UTF8.GetBytes(Resources.DefaultSettings);
fs.Write(bytes, 0, bytes.Length);
}
問題:Windows 7では、これらのアクセスルールはファイルに適用されません(ファイルのプロパティダイアログのページにグループEveryone
が表示されません)。Security
指定されたファイルへのアクセスをすべての人(管理者、ユーザーなど)に許可したい。
私が間違っていることは何ですか?