Adesso ho provato facendo così:
'Su client leggo il valore così
x = fsecurity2.GetSecurityDescriptorBinaryForm
'Mentre su server scrivo il valore letto su client così:
fileAcl.SetSecurityDescriptorBinaryForm(x)
Naturalmente finche eseguo tutto sulla stessa macchina OK, i due file sono identici.
Ma se faccio il giochetto in questione e quindi uso uno server in cui tale utente non esiste:
"System.InvalidOperationException è stata individuata
HResult=-2146233079
Message=L'identificatore di sicurezza non può essere il proprietario di questo oggetto.
Source=mscorlib
StackTrace:
in System.Security.AccessControl.NativeObjectSecurity.Persist(String name, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext)
in System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections, Object exceptionContext)
in System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections)
in System.Security.AccessControl.FileSystemSecurity.Persist(String fullPath)
in System.IO.File.SetAccessControl(String path, FileSecurity fileSecurity)
in System.IO.FileInfo.SetAccessControl(FileSecurity fileSecurity)
in ConsoleApplication1.SynchronousSocketListener.scrivi(String dati) in X:\Users\xxx\Desktop\xxx\ConsoleApplication1\ConsoleApplication1\Module1.vb:riga 174
InnerException:
"
