我正在尝试在安装时更改文件的访问控制。更具体地说,通过 Wix 的自定义操作,我确信它是以管理员权限执行的。
这是代码:
string pathVersioningDat = ConfigurationManager.GetPath("versioning.dat", true);
FileSystemAccessRule rule = new FileSystemAccessRule("everyone", FileSystemRights.FullControl, AccessControlType.Allow);
FileSecurity fSecurity = File.GetAccessControl(pathVersioningDat);
fSecurity.SetAccessRule(rule);
File.SetAccessControl(pathVersioningDat, fSecurity);
我知道它适用于多台计算机。它不适用于任何 W7 Starter Edition,在某些情况下也不适用于其他 Windows 7 Edition。
异常消息 (IdentityNotMappedException) 是“无法翻译部分或全部身份引用”。似乎在这些计算机中找不到“每个人”用户,但我不确定。它发生在 System.Security.Principal.NTAAccount.Translate 方法中。
有什么帮助吗?