public void DRSR_DRSVerifyNames_Verify_Dsnames() { DrsrTestChecker.Check(); // Init the data. EnvironmentConfig.Machine srv = EnvironmentConfig.Machine.WritableDC1; DsServer server = (DsServer)EnvironmentConfig.MachineStore[srv]; uint ret = 0; ret = drsTestClient.DrsBind( srv, EnvironmentConfig.User.ParentDomainAdmin, DRS_EXTENSIONS_IN_FLAGS.DRS_EXT_BASE ); BaseTestSite.Assert.AreEqual <uint>(0, ret, "IDL_DRSBind: Checking return value - got: {0}, expect: {1}, return value should always be 0 with a success bind to DC", ret, 0); // Create a DSNAME string dn = server.Site.DN; DSNAME dsSite = ldapAdapter.GetDsName(server, dn).Value; // Prefix table SCHEMA_PREFIX_TABLE prefixTable = OIDUtility.CreatePrefixTable(); // Create the attribute block. Here we go to RDN attribute. string rdnAttrId = DRSConstants.RDN_OID; uint attrTyp = OIDUtility.MakeAttid(prefixTable, rdnAttrId); ATTRVAL attrVal = DrsuapiClient.CreateATTRVAL(null); ATTRVALBLOCK attrValBlock = DrsuapiClient.CreateATTRVALBLOCK(new ATTRVAL[] { attrVal }); ATTR attr = DrsuapiClient.CreateATTR(attrTyp, attrValBlock); ATTRBLOCK attrBlock = DrsuapiClient.CreateATTRBLOCK(new ATTR[] { attr }); // Actual RPC call. ret = drsTestClient.DrsVerifyNames( srv, dwInVersion_Values.V1, DRS_MSG_VERIFYREQ_V1_dwFlags_Values.DRS_VERIFY_DSNAMES, new DSNAME[] { dsSite }, new string[] { dn }, attrBlock, prefixTable ); BaseTestSite.Assert.AreEqual <uint>(0, ret, "IDL_DRSVerifyNames: Checking return value - got: {0}, expect: {1}, return value should always be 0", ret, 0); // Unbind ret = drsTestClient.DrsUnbind(srv); BaseTestSite.Assert.AreEqual <uint>(0, ret, "IDL_DRSUnbind: Checking return value - got: {0}, expect: {1}, return value should always be 0", ret, 0); }
public DRS_MSG_VERIFYREQ CreateDrsVerifyNamesV1Request() { DRS_MSG_VERIFYREQ req = new DRS_MSG_VERIFYREQ(); req.V1 = new DRS_MSG_VERIFYREQ_V1(); req.V1.dwFlags = 0; req.V1.cNames = 1; req.V1.rpNames = new DSNAME[1][]; req.V1.rpNames[0] = new DSNAME[] { DrsuapiClient.CreateDsName(null, Guid.Empty, null) }; req.V1.RequiredAttrs = DrsuapiClient.CreateATTRBLOCK(null); req.V1.PrefixTable = OIDUtility.CreatePrefixTable(); return(req); }
public static uint attrTyp(DsServer dc, string attrName) { RootDSE rootDse = LdapUtility.GetRootDSE(dc); SCHEMA_PREFIX_TABLE prefixTable = OIDUtility.CreatePrefixTable(); string attrOid = GetAttributeValueInString( dc, rootDse.schemaNamingContext, "attributeID", "(lDAPDisplayName=" + attrName + ")", System.DirectoryServices.Protocols.SearchScope.OneLevel ); uint attrTyp = OIDUtility.MakeAttid(prefixTable, attrOid); return(attrTyp); }
public DRS_MSG_GETCHGREQ CreateDrsGetNcChangesV8Request() { DRS_MSG_GETCHGREQ req = new DRS_MSG_GETCHGREQ(); req.V8 = new DRS_MSG_GETCHGREQ_V8(); req.V8.uuidDsaObjDest = Guid.Empty; req.V8.uuidInvocIdSrc = Guid.Empty; req.V8.pNC = DrsuapiClient.CreateDsName(null, Guid.Empty, null); req.V8.usnvecFrom = new USN_VECTOR(); req.V8.pUpToDateVecDest = new UPTODATE_VECTOR_V1_EXT[1]; req.V8.pUpToDateVecDest[0].dwVersion = UPTODATE_VECTOR_V1_EXT_dwVersion_Values.V1; req.V8.pUpToDateVecDest[0].cNumCursors = 1; req.V8.pUpToDateVecDest[0].rgCursors = new UPTODATE_CURSOR_V1[1]; req.V8.pPartialAttrSet = null; req.V8.pPartialAttrSetEx = null; req.V8.PrefixTableDest = OIDUtility.CreatePrefixTable(); return(req); }
public void DRSR_DRSVerifyNames_Verify_SAM_Account_Names() { DrsrTestChecker.Check(); // Init the data. EnvironmentConfig.Machine srv = EnvironmentConfig.Machine.WritableDC1; DsServer server = (DsServer)EnvironmentConfig.MachineStore[srv]; DsUser user = EnvironmentConfig.UserStore[EnvironmentConfig.User.ParentDomainAdmin]; uint ret = 0; ret = drsTestClient.DrsBind( srv, EnvironmentConfig.User.ParentDomainAdmin, DRS_EXTENSIONS_IN_FLAGS.DRS_EXT_BASE ); BaseTestSite.Assert.AreEqual <uint>( 0, ret, "IDL_DRSBind: should return 0 with a success bind to DC"); // Create a DSNAME with only SAMAccountName. string userDn = ldapAdapter.GetUserDn(server, user); string sAMAccountName = (string)ldapAdapter.GetAttributeValue(server, userDn, "sAMAccountName"); DSNAME dsUser = DrsuapiClient.CreateDsName(sAMAccountName, Guid.Empty, null); // Prefix table SCHEMA_PREFIX_TABLE prefixTable = OIDUtility.CreatePrefixTable(); // Create the attribute block. Here we go to RDN attribute. string rdnAttrId = DRSConstants.RDN_OID; uint attrTyp = OIDUtility.MakeAttid(prefixTable, rdnAttrId); ATTRVAL attrVal = DrsuapiClient.CreateATTRVAL(null); ATTRVALBLOCK attrValBlock = DrsuapiClient.CreateATTRVALBLOCK(new ATTRVAL[] { attrVal }); ATTR attr = DrsuapiClient.CreateATTR(attrTyp, attrValBlock); ATTRBLOCK attrBlock = DrsuapiClient.CreateATTRBLOCK(new ATTR[] { attr }); // Actual RPC call. ret = drsTestClient.DrsVerifyNames( srv, dwInVersion_Values.V1, DRS_MSG_VERIFYREQ_V1_dwFlags_Values.DRS_VERIFY_SAM_ACCOUNT_NAMES, new DSNAME[] { dsUser }, new string[] { userDn }, attrBlock, prefixTable ); BaseTestSite.Assert.AreEqual <uint>( 0, ret, "IDL_DRSVerifyNames: return value should be 0" ); // Unbind ret = drsTestClient.DrsUnbind(srv); BaseTestSite.Assert.AreEqual <uint>( 0, ret, "IDL_DRSUnbind: return value should be 0"); }