使用资源管理器我可以将我创建的文件的所有者设置为“NT SERVICE \ TrustedInstaller”,并且它确实已设置。我已经用DIR / Q验证了。
但是当我在Windows 7 SP1 X64上使用以下C#代码时:
FileInfo info = new FileInfo("TrustedFile.txt");
FileSecurity security = info.GetAccessControl();
NTAccount Sid = new NTAccount("NT SERVICE\\TrustedInstaller");
security.SetOwner ( Sid );
info.SetAccessControl( security );
以管理员权限运行时,我收到以下异常,事件。
**System.InvalidOperationException: The security identifier is not allowed to be the owner of this object.**
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, SafeHandle handle, AccessControlSections includeSections, Object excepti
onContext)
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections, Object exceptionContext)
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections)
at System.Security.AccessControl.FileSystemSecurity.Persist(String fullPath)
at System.IO.File.SetAccessControl(String path, FileSecurity fileSecurity)
at System.IO.FileInfo.SetAccessControl(FileSecurity fileSecurity)
at SetFileOwner.Program.Main(String[] args)
知道我做错了吗?
答案 0 :(得分:0)
你必须冒充一个在asp.net内有权这样做的Windows用户。
通常在asp.net内进行数据库登录时进行模拟。