public void DRSR_DRSGetObjectExistence_Access_Denied()
        {
            DrsrTestChecker.Check();
            uint ret = drsTestClient.DrsBind(
                EnvironmentConfig.Machine.WritableDC1,
                EnvironmentConfig.User.ParentDomainUser,
                DRS_EXTENSIONS_IN_FLAGS.DRS_EXT_BASE);
            /* comments from TD */

            /*
             * if not AccessCheckCAR(nc, DS-Replication-Get-Changes) then
             * return ERROR_DS_DRA_ACCESS_DENIED
             * endif
             *
             */

            /* comments from likezh */

            /*
             * !AccessCheckCAR(nc, DS-Replication-Get-Changes)
             */
            //throw new NotImplementedException();

            /* Create request message */
            DRS_MSG_EXISTREQ msgIn = drsTestClient.CreateDrsGetObjectExistenceV1Request();

            // NC
            DsServer srv = (DsServer)EnvironmentConfig.MachineStore[EnvironmentConfig.Machine.WritableDC1];

            RootDSE rootDse  = LdapUtility.GetRootDSE(srv);
            DSNAME  ncDsname = LdapUtility.CreateDSNameForObject(srv, rootDse.defaultNamingContext);

            msgIn.V1.pNC = ncDsname;

            // This API will check the guidStart first to validate the input, so
            // to go thru that we set the guidStart to any guid.
            msgIn.V1.guidStart = DRSConstants.DrsRpcInterfaceGuid;

            uint dwInVersion  = 1;
            uint?dwOutVersion = 0;
            DRS_MSG_EXISTREPLY?reply;

            /* Issue the request */
            ret = drsTestClient.DRSClient.DrsGetObjectExistence(
                EnvironmentConfig.DrsContextStore[EnvironmentConfig.Machine.WritableDC1],
                dwInVersion,
                msgIn,
                out dwOutVersion,
                out reply);
            BaseTestSite.Assert.AreEqual <uint>(
                (uint)Win32ErrorCode_32.ERROR_DS_DRA_ACCESS_DENIED,
                ret,
                "DrsGetObjectExistence: return code mismatch."
                );
        }
コード例 #2
0
        public DRS_MSG_EXISTREQ CreateDrsGetObjectExistenceV1Request()
        {
            DRS_MSG_EXISTREQ req = new DRS_MSG_EXISTREQ();

            req.V1                      = new DRS_MSG_EXISTREQ_V1();
            req.V1.guidStart            = Guid.Empty;
            req.V1.pNC                  = DrsuapiClient.CreateDsName(null, Guid.Empty, null);
            req.V1.pUpToDateVecCommonV1 = new UPTODATE_VECTOR_V1_EXT[1];
            req.V1.pUpToDateVecCommonV1[0].cNumCursors = 1;
            req.V1.pUpToDateVecCommonV1[0].rgCursors   = new UPTODATE_CURSOR_V1[1];
            req.V1.Md5Digest = new byte[16];
            return(req);
        }
        public void DRSR_DRSGetObjectExistence_No_Master_Replica_Exists()
        {
            DrsrTestChecker.Check();
            uint ret = drsTestClient.DrsBind(
                EnvironmentConfig.Machine.WritableDC1,
                EnvironmentConfig.User.ParentDomainAdmin,
                DRS_EXTENSIONS_IN_FLAGS.DRS_EXT_BASE);
            /* comments from TD */

            /*
             * if not MasterReplicaExists(nc) then
             * return ERROR_DS_DRA_INVALID_PARAMETER
             * endif
             *
             */

            /* comments from likezh */

            /*
             * not MasterReplicaExists(nc)
             */
            //throw new NotImplementedException();

            /* Create request message */
            DRS_MSG_EXISTREQ msgIn = drsTestClient.CreateDrsGetObjectExistenceV1Request();

            uint dwInVersion  = 1;
            uint?dwOutVersion = 0;
            DRS_MSG_EXISTREPLY?reply;

            /* Issue the request */
            ret = drsTestClient.DRSClient.DrsGetObjectExistence(
                EnvironmentConfig.DrsContextStore[EnvironmentConfig.Machine.WritableDC1],
                dwInVersion,
                msgIn,
                out dwOutVersion,
                out reply);
            BaseTestSite.Assert.AreEqual <uint>(
                (uint)Win32ErrorCode_32.ERROR_DS_DRA_INVALID_PARAMETER,
                ret,
                "DrsGetObjectExistence: return code mismatch."
                );
        }
        public void DRSR_DRSGetObjectExistence_Invalid_Start_Guid()
        {
            DrsrTestChecker.Check();
            uint ret = drsTestClient.DrsBind(
                EnvironmentConfig.Machine.WritableDC1,
                EnvironmentConfig.User.ParentDomainAdmin,
                DRS_EXTENSIONS_IN_FLAGS.DRS_EXT_BASE);
            /* comments from TD */

            /*
             * if msgIn.guidStart = NULLGUID then
             * return ERROR_DS_DRA_INVALID_PARAMETER
             * endif
             *
             */


            /* Create request message */
            DRS_MSG_EXISTREQ msgIn = drsTestClient.CreateDrsGetObjectExistenceV1Request();

            uint dwInVersion  = 1;
            uint?dwOutVersion = 0;
            DRS_MSG_EXISTREPLY?reply;

            /* Setting param #1 */
            /*msgIn.V1.guidStart =  Guid.Empty*/
            msgIn.V1.guidStart = Guid.Empty;

            /* Issue the request */
            ret = drsTestClient.DRSClient.DrsGetObjectExistence(
                EnvironmentConfig.DrsContextStore[EnvironmentConfig.Machine.WritableDC1],
                dwInVersion,
                msgIn,
                out dwOutVersion,
                out reply);
            BaseTestSite.Assert.AreEqual <uint>(
                (uint)Win32ErrorCode_32.ERROR_DS_DRA_INVALID_PARAMETER,
                ret,
                "DrsGetObjectExistence: return code mismatch."
                );
        }