protected _SECURITY_DESCRIPTOR QuerySecurityDescriptor(string sharePath, string fileName, AdditionalInformation_Values securityAttributesToQuery) { Smb2FunctionalClient clientAdmin; clientAdmin = new Smb2FunctionalClient(TestConfig.Timeout, TestConfig, BaseTestSite); clientAdmin.ConnectToServer(TestConfig.UnderlyingTransport, TestConfig.SutComputerName, TestConfig.SutIPAddress); uint treeId; ConnectToShare(clientAdmin, TestConfig.AccountCredential, sharePath, out treeId); FILEID fileId; Smb2CreateContextResponse[] createContextResponses; clientAdmin.Create(treeId, fileName, fileName == null ? CreateOptions_Values.FILE_DIRECTORY_FILE : CreateOptions_Values.FILE_NON_DIRECTORY_FILE, out fileId, out createContextResponses, accessMask: AccessMask.READ_CONTROL | AccessMask.WRITE_DAC | AccessMask.FILE_READ_ATTRIBUTES, shareAccess: ShareAccess_Values.FILE_SHARE_DELETE | ShareAccess_Values.FILE_SHARE_READ | ShareAccess_Values.FILE_SHARE_WRITE, createDisposition: CreateDisposition_Values.FILE_OPEN); _SECURITY_DESCRIPTOR sd; clientAdmin.QuerySecurityDescriptor(treeId, fileId, securityAttributesToQuery, out sd); clientAdmin.Close(treeId, fileId); clientAdmin.TreeDisconnect(treeId); clientAdmin.LogOff(); clientAdmin.Disconnect(); return sd; }
protected _SECURITY_DESCRIPTOR QuerySecurityDescriptor(string sharePath, string fileName, AdditionalInformation_Values securityAttributesToQuery) { Smb2FunctionalClient clientAdmin; clientAdmin = new Smb2FunctionalClient(TestConfig.Timeout, TestConfig, BaseTestSite); clientAdmin.ConnectToServer(TestConfig.UnderlyingTransport, TestConfig.SutComputerName, TestConfig.SutIPAddress); uint treeId; ConnectToShare(clientAdmin, TestConfig.AccountCredential, sharePath, out treeId); FILEID fileId; Smb2CreateContextResponse[] createContextResponses; clientAdmin.Create(treeId, fileName, fileName == null ? CreateOptions_Values.FILE_DIRECTORY_FILE : CreateOptions_Values.FILE_NON_DIRECTORY_FILE, out fileId, out createContextResponses, accessMask: AccessMask.READ_CONTROL | AccessMask.WRITE_DAC | AccessMask.FILE_READ_ATTRIBUTES, shareAccess: ShareAccess_Values.FILE_SHARE_DELETE | ShareAccess_Values.FILE_SHARE_READ | ShareAccess_Values.FILE_SHARE_WRITE, createDisposition: CreateDisposition_Values.FILE_OPEN); _SECURITY_DESCRIPTOR sd; clientAdmin.QuerySecurityDescriptor(treeId, fileId, securityAttributesToQuery, out sd); clientAdmin.Close(treeId, fileId); clientAdmin.TreeDisconnect(treeId); clientAdmin.LogOff(); clientAdmin.Disconnect(); return(sd); }