/// <summary> /// override Reset method that is called before each test case runs /// </summary> public override void Reset() { base.Reset(); if (lsadClientStack != null) { lsadClientStack.Dispose(); lsadClientStack = null; } }
public static IntPtr LsarOpenPolicy2(LsaClient lsadAdapterObj, string strServerName, ACCESS_MASK MAXIMUM_ALLOWED) { _LSAPR_OBJECT_ATTRIBUTES objectAttributes = new _LSAPR_OBJECT_ATTRIBUTES(); objectAttributes.RootDirectory = null; ACCESS_MASK uintAccessMask = (ACCESS_MASK)MAXIMUM_ALLOWED; NtStatus uintMethodStatus = lsadAdapterObj.LsarOpenPolicy2( strServerName, objectAttributes, uintAccessMask, out PolicyHandle); return(PolicyHandle.Value); }
/// <summary> /// override dispose function /// </summary> /// <param name="disposing">release managed resources or not, true to release, false if not</param> protected override void Dispose(bool disposing) { if (!this.disposed) { if (disposing) { // release managed resources if (lsadClientStack != null) { lsadClientStack.Dispose(); lsadClientStack = null; } } this.disposed = true; } base.Dispose(disposing); }
/// <summary> /// The Initialize is invoked to initialize the environment for server. /// </summary> /// <param name="serverConfig">Values for server configuration whether it is DC or Non DCalues</param> /// <param name="anonymousAccess">Values for setting access to anonymous requester</param> /// <param name="windowsServer">SUT's OS version</param> /// <param name="noOfHandles">Specifies the maximum number of handles /// that can be opened by OpenPolicy and OpenPolcy2 methods at any instant of time</param> /// <param name="isDomainAdmin">Set true if the user is Domain Admin, else set false</param> public void Initialize( ProtocolServerConfig serverConfig, AnonymousAccess anonymousAccess, Server windowsServer, int noOfHandles, bool isDomainAdmin) { lsadClientStack = new LsaClient(); lsadAdapter = Site.GetAdapter <ILsadManagedAdapter>(); if (serverConfig == ProtocolServerConfig.DomainController || serverConfig == ProtocolServerConfig.PrimaryDomainController) { isDC = true; this.strServerName = this.PDCNetbiosName; } else if (serverConfig == ProtocolServerConfig.ReadOnlyDomainController) { isDC = true; this.strServerName = this.RODCNetbiosName; } else if (serverConfig == ProtocolServerConfig.NonDomainController) { isDC = false; this.strServerName = this.DMNetbiosName; } if (isDomainAdmin) { this.userName = this.DomainAdministratorName; IsInDomainAdminsGroup = true; } else if (!isDomainAdmin) { this.userName = DomainUserName; IsInDomainAdminsGroup = false; } fullDomain = this.PrimaryDomainDnsName; domain = this.PrimaryDomainNetBiosName; this.timeout = TimeSpan.FromMilliseconds(GetDoubleProperty(propertyGroup + "TimeoutMilliseconds")); secretNameOfSecretObject = ValidName; isWindows = !ServerVersion.NonWin.Equals(PDCOSVersion) && !ServerVersion.Invalid.Equals(PDCOSVersion); this.disposed = false; this.serverName = utilities.ConversionfromStringtoushortArray(this.strServerName); DomainGUID = this.PrimaryDomainSrvGUID.ToLower(); AccountCredential transportCredential = new AccountCredential(string.Empty, this.userName, this.DomainUserPassword); lsadClientStack.BindOverNamedPipe( this.strServerName, transportCredential, null, RpceAuthenticationLevel.RPC_C_AUTHN_LEVEL_NONE, this.timeout); base.Initialize(Site); lsadUUID = constLsadUUID; lsadendPoint = constLsadendPoint; lsadProtocolSequence = constLsadProtocolSequence; stPolicyInformation.PHandle = 0; stPolicyInformation.AccessforHandle = ACCESS_MASK.ACCOUNT_ADJUST_PRIVILEGES; serverPlatform = windowsServer; ////SID SubAuthorityCount value. objAccountSid[0].SubAuthorityCount = SIDCount; ////_RPC_SID.SubAuthority array size. objAccountSid[0].SubAuthority = new uint[SID]; htAccHandle.Clear(); htAddAccRight.Clear(); checkTrustHandle = false; isitSetTrustedDomainInfo = false; trustObjectCreateinformation.doesTdoSupportForestInformation = false; trustObjectCreateinformation.intTdoHandleNumber = 0; trustObjectCreateinformation.isForestInformationPresent = false; trustObjectCreateinformation.strDomainSid = string.Empty; trustObjectCreateinformation.strTdoDnsName = string.Empty; trustObjectCreateinformation.strTdoNetBiosName = string.Empty; trustObjectCreateinformation.uintTdoDesiredAccess = 0; trustObjectCreateinformation.uintTrustAttr = 0; trustObjectCreateinformation.uintTrustDir = 0; trustObjectCreateinformation.uintTrustType = 0; domainState = serverConfig; stSecretInformation.strNameOfSecretObject = string.Empty; stSecretInformation.UIntSecretHandleAccessCount = 1; }