.net - Kan ikke angive filen ejer til NT SERVICE \ TrustedInstaller

Indlæg af Hanne Mølgaard Plasc

Problem



Ved hjælp af explorer kan jeg sætte ejeren af ​​en fil, jeg har oprettet til 'NT SERVICE \ TrustedInstaller', og den bliver sat. Jeg har verificeret med DIR/Q.


Men når jeg bruger følgende C # kode på Windows 7 SP1 X64:


FileInfo info = new FileInfo("TrustedFile.txt");
FileSecurity security = info.GetAccessControl();
NTAccount Sid = new NTAccount("NT SERVICE\TrustedInstaller");
security.SetOwner ( Sid );
info.SetAccessControl( security );


Jeg får følgende undtagelse, begivenhed, når du kører med administratorrettigheder.


**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)


Enhver ide om, hvad jeg gør forkert?

Bedste reference


Du skal efterligne en Windows-bruger, der har rettigheder til at gøre det indenfor Asp.net.


Impersonation er normalt gjort for til database login inside asp.net.