// <summary>
        // the function is used to create a DrsUpdateRef request
        // </summary>
        public DRS_MSG_UPDREFS CreateRequestForDrsUpdateRef(
            EnvironmentConfig.Machine machine,
            DsServer dest,
            DRS_OPTIONS options,
            NamingContext nc = NamingContext.ConfigNC)
        {
            string nc_name = null;
            Guid   nc_guid = Guid.Empty;
            string nc_sid  = null;
            DSNAME nc_obj;

            switch (nc)
            {
            case NamingContext.ConfigNC:
                nc_obj = dest.Domain.ConfigNC;
                break;

            case NamingContext.SchemaNC:
                nc_obj = dest.Domain.SchemaNC;
                break;

            case NamingContext.AppNC:
                if (EnvironmentConfig.TestDS)
                {
                    nc_obj = ((AddsDomain)dest.Domain).OtherNCs[0];
                }
                else
                {
                    nc_obj = ((AdldsDomain)dest.Domain).AppNCs[0];
                }
                break;

            case NamingContext.DomainNC:
                if (!EnvironmentConfig.TestDS)
                {
                    nc_obj = new DSNAME();
                }
                nc_obj = ((AddsDomain)dest.Domain).DomainNC;
                break;

            default:
                nc_obj = new DSNAME();
                break;
            }

            nc_name = LdapUtility.ConvertUshortArrayToString(nc_obj.StringName);
            nc_guid = nc_obj.Guid;
            nc_sid  = convertSidToString(nc_obj.Sid);

            DRS_MSG_UPDREFS?req = DRSClient.CreateUpdateRefsRequest(
                nc_name,
                nc_guid,
                nc_sid,
                dest.DsaNetworkAddress,
                dest.NtdsDsaObjectGuid,
                options);

            return((DRS_MSG_UPDREFS)req);
        }
Esempio n. 2
0
        public DRS_MSG_REPMOD createDRS_MSG_REPMOD_Request(
            EnvironmentConfig.Machine machine,
            DsServer src,
            DRS_OPTIONS replicaFlags,
            DRS_MSG_REPMOD_FIELDS modifyFields,
            DRS_OPTIONS options
            )
        {
            #region generate the parameters
            string ncReplicaDistinguishedName = LdapUtility.ConvertUshortArrayToString(src.Domain.ConfigNC.StringName);
            Guid   ncReplicaObjectGuid        = src.Domain.ConfigNC.Guid;
            NT4SID ncReplicaObjectSid         = src.Domain.ConfigNC.Sid;
            Guid   sourceDsaGuid = src.NtdsDsaObjectGuid;
            string sourceDsaName = src.DsaNetworkAddress;

            #endregion

            REPLTIMES s = new REPLTIMES();
            s.rgTimes = new byte[84];
            for (int i = 0; i < s.rgTimes.Length; i++)
            {
                s.rgTimes[i] = 1;
            }

            string sid = convertSidToString(ncReplicaObjectSid);

            DRS_MSG_REPMOD?req = DRSClient.CreateReplicaModifyRequest(
                ncReplicaDistinguishedName,
                ncReplicaObjectGuid,
                sid,
                sourceDsaGuid,
                sourceDsaName,
                s,
                replicaFlags,
                modifyFields,
                options);
            return((DRS_MSG_REPMOD)req);
        }
Esempio n. 3
0
 public DRS_EXTENSIONS CreateCorrectDrsExtensionsForClient(bool isDc)
 {
     if (!isDc)
     {
         return(DRSClient.CreateDrsExtensions(false, TestTools.StackSdk.ActiveDirectory.Drsr.DRS_EXTENSIONS_IN_FLAGS.DRS_EXT_BASE,
                                              Guid.Empty,
                                              0,
                                              0));
     }
     else
     {
         DsServer sut = (DsServer)EnvironmentConfig.MachineStore[EnvironmentConfig.Machine.WritableDC1];
         uint     epo = 0;
         object   got = LdapUtility.GetAttributeValue(sut, sut.NtdsDsaObjectName, "msDs-ReplicationEpoch");
         if (got != null)
         {
             epo = uint.Parse(got.ToString());
         }
         return(DRSClient.CreateDrsExtensions(true, DRS_EXTENSIONS_IN_FLAGS.DRS_EXT_BASE,
                                              ((DsServer)EnvironmentConfig.MachineStore[EnvironmentConfig.Machine.WritableDC1]).Site.Guid,
                                              0,
                                              epo));
     }
 }