【发布时间】:2010-10-13 08:53:26
【问题描述】:
我在 Visual Studio 中构建了一个程序。该程序创建一个日志文件并在程序运行时写入其中。因此,我构建了一个安装程序(设置项目),它应该为我的程序文件夹设置写权限,无论哪个用户使用该程序。 目前它看起来像这样:
// ...
}
InitializeComponent();
string folder = Directory.GetCurrentDirectory();
DirectorySecurity ds = Directory.GetAccessControl(folder);
ds.AddAccessRule(new FileSystemAccessRule("Everyone", //Everyone is important
//because rights for all users!
FileSystemRights.Read | FileSystemRights.Write, AccessControlType.Allow));
}
// ...
在最后两行我得到一个System.SystemException:“Die Vertrauensstellung zwischen der primären Domäne und der vertrauenswürdigen Domäne konnte nicht hergestellt werden。”
[翻译:“主域和可信域之间的信任关系无法建立。”]
堆栈跟踪如下所示:
bei System.Security.Principal.NTAccount.TranslateToSids(IdentityReferenceCollection sourceAccounts, Boolean& someFailed)
bei System.Security.Principal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean& someFailed)
bei System.Security.Principal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean forceSuccess)
bei System.Security.Principal.NTAccount.Translate(Type targetType)
bei System.Security.AccessControl.CommonObjectSecurity.ModifyAccess(AccessControlModification modification, AccessRule rule, Boolean& modified)
bei System.Security.AccessControl.CommonObjectSecurity.AddAccessRule(AccessRule rule)
bei System.Security.AccessControl.FileSystemSecurity.AddAccessRule(FileSystemAccessRule rule)
你知道我能做什么吗? 谢谢
【问题讨论】:
-
您是否使用管理权限执行安装程序?
-
请注意,给定系统上的各种公用文件夹用于存储程序数据是有原因的...
-
哦,我认为使用管理权限执行安装程序是默认设置。我在哪里可以找到这个?在我的设置项目的属性中我找不到这个。
-
现在我检查了我的管理员帐户中的代码,我又得到了这个异常。该程序应由具有管理员权限的用户安装。如何在没有出现此异常的情况下设置写权限?
标签: c# .net permissions windows-xp setup-project