protected void SetShareInfo(string sharePath, SHARE_INFO_502_I shareInfo) { using (SrvsClient srvsClient = new SrvsClient(TestConfig.Timeout)) { ClientSecurityContext securityContext = new SspiClientSecurityContext( TestConfig.DefaultSecurityPackage, TestConfig.AccountCredential, Smb2Utility.GetCifsServicePrincipalName(TestConfig.SutComputerName), ClientSecurityContextAttribute.Connection | ClientSecurityContextAttribute.DceStyle | ClientSecurityContextAttribute.Integrity | ClientSecurityContextAttribute.ReplayDetect | ClientSecurityContextAttribute.SequenceDetect | ClientSecurityContextAttribute.UseSessionKey, SecurityTargetDataRepresentation.SecurityNativeDrep); srvsClient.Bind(TestConfig.SutComputerName, TestConfig.AccountCredential, securityContext); SHARE_INFO info = new SHARE_INFO { ShareInfo502 = shareInfo }; uint?parmErr = 0; uint retVal = srvsClient.NetrShareSetInfo(@"\\" + TestConfig.SutComputerName, sharePath, SHARE_ENUM_STRUCT_LEVEL.Level502, info, ref parmErr); if (retVal != 0) { BaseTestSite.Assert.Fail("Fail to get share info through MS-SRVS."); } srvsClient.UnBind(); } }
protected void SetShareInfo(string sharePath, SHARE_INFO_502_I shareInfo) { using (SrvsClient srvsClient = new SrvsClient(TestConfig.Timeout)) { srvsClient.Bind(TestConfig.SutComputerName, TestConfig.AccountCredential, null); SHARE_INFO info = new SHARE_INFO { ShareInfo502 = shareInfo }; uint?parmErr = 0; uint retVal = srvsClient.NetrShareSetInfo(@"\\" + TestConfig.SutComputerName, sharePath, SHARE_ENUM_STRUCT_LEVEL.Level502, info, ref parmErr); if (retVal != 0) { BaseTestSite.Assert.Fail("Fail to get share info through MS-SRVS."); } srvsClient.UnBind(); } }
private void SetSecurityDescriptorOnDynamicallyConfigurableShare(object ace) { _SECURITY_DESCRIPTOR sd = DtypUtility.DecodeSecurityDescriptor(originalShareInfo.Value.shi502_security_descriptor); _ACL dacl = sd.Dacl.Value; DtypUtility.AddAceToAcl(ref dacl, true, ace); sd.Dacl = dacl; DtypUtility.UpdateSecurityDescriptor(ref sd); SHARE_INFO_502_I newShareInfo = originalShareInfo.Value; newShareInfo.shi502_security_descriptor = DtypUtility.EncodeSecurityDescriptor(sd); newShareInfo.shi502_reserved = (uint)newShareInfo.shi502_security_descriptor.Length; BaseTestSite.Log.Add(LogEntryKind.TestStep, "Set Security Descriptor on the share ({0}): {1}.", Smb2Utility.GetUncPath(TestConfig.SutComputerName, dynamicallyConfigurableShareName), DtypUtility.ToSddlString(sd)); SetShareInfo(dynamicallyConfigurableShareName, newShareInfo); }