コード例 #1
0
        internal void UpdateSessionContextWithMessageSent(
            DrsrRpcInterfaceType currentInterfaceType,
            DrsrResponseStub messageToSend)
        {
            if (currentInterfaceType == DrsrRpcInterfaceType.DRSUAPI)
            {
                switch ((DrsuapiMethodOpnums)messageToSend.Opnum)
                {
                case DrsuapiMethodOpnums.DrsBind:
                    DrsBindRequest  bindRequest  = requestReceived as DrsBindRequest;
                    DrsBindResponse bindResponse = messageToSend as DrsBindResponse;
                    if (bindRequest != null && bindResponse != null)
                    {
                        if (bindResponse.Status == 0)
                        {
                            drsHandles.Add(bindResponse.drsHandle);
                        }
                    }
                    break;

                case DrsuapiMethodOpnums.DrsUnbind:
                    DrsUnbindRequest  unbindRequest  = requestReceived as DrsUnbindRequest;
                    DrsUnbindResponse unbindResponse = messageToSend as DrsUnbindResponse;
                    if (unbindRequest != null && unbindResponse != null)
                    {
                        if (unbindResponse.Status == 0 && drsHandles.Contains(unbindRequest.drsHandle.Value))
                        {
                            drsHandles.Remove(unbindRequest.drsHandle.Value);
                        }
                    }
                    break;

                default:
                    break;
                }
            }
            else if (currentInterfaceType == DrsrRpcInterfaceType.DSAOP)
            {
                switch ((DsaopMethodOpnums)messageToSend.Opnum)
                {
                case DsaopMethodOpnums.DsaPrepareScript:
                    DsaPrepareScriptRequest  PrepareRequest  = requestReceived as DsaPrepareScriptRequest;
                    DsaPrepareScriptResponse PrepareResponse = messageToSend as DsaPrepareScriptResponse;
                    if (PrepareRequest != null && PrepareResponse != null)
                    {
                        if (PrepareResponse.Status == 0)
                        {
                            password = PrepareResponse.outMessage.Value.V1.pbPassword;
                        }
                    }
                    break;

                case DsaopMethodOpnums.DsaExecuteScript:
                    DsaExecuteScriptRequest  executeRequest  = requestReceived as DsaExecuteScriptRequest;
                    DsaExecuteScriptResponse executeResponse = messageToSend as DsaExecuteScriptResponse;
                    if (executeRequest != null && executeResponse != null)
                    {
                        if (executeResponse.Status == 0)
                        {
                            password = new byte[0];
                        }
                    }
                    break;
                }
            }
        }
コード例 #2
0
        internal static DrsrRequestStub CreateDrsrRequestStub(DrsrRpcInterfaceType interfaceType, ushort opnum)
        {
            DrsrRequestStub requestStub = null;

            if (interfaceType == DrsrRpcInterfaceType.DRSUAPI)
            {
                switch ((DrsuapiMethodOpnums)opnum)
                {
                case DrsuapiMethodOpnums.DrsBind:
                    requestStub = new DrsBindRequest();
                    break;

                case DrsuapiMethodOpnums.DrsUnbind:
                    requestStub = new DrsUnbindRequest();
                    break;

                case DrsuapiMethodOpnums.DrsReplicaSync:
                    requestStub = new DrsReplicaSyncRequest();
                    break;

                case DrsuapiMethodOpnums.DrsGetNcChanges:
                    requestStub = new DrsGetNcChangesRequest();
                    break;

                case DrsuapiMethodOpnums.DrsUpdateRefs:
                    requestStub = new DrsUpdateRefsRequest();
                    break;

                case DrsuapiMethodOpnums.DrsReplicaAdd:
                    requestStub = new DrsReplicaAddRequest();
                    break;

                case DrsuapiMethodOpnums.DrsReplicaDel:
                    requestStub = new DrsReplicaDelRequest();
                    break;

                case DrsuapiMethodOpnums.DrsReplicaModify:
                    requestStub = new DrsReplicaModifyRequest();
                    break;

                case DrsuapiMethodOpnums.DrsVerifyNames:
                    requestStub = new DrsVerifyNamesRequest();
                    break;

                case DrsuapiMethodOpnums.DrsGetMemberships:
                    requestStub = new DrsGetMembershipsRequest();
                    break;

                case DrsuapiMethodOpnums.DrsInterDomainMove:
                    requestStub = new DrsInterDomainMoveRequest();
                    break;

                case DrsuapiMethodOpnums.DrsGetNt4ChangeLog:
                    requestStub = new DrsGetNt4ChangeLogRequest();
                    break;

                case DrsuapiMethodOpnums.DrsCrackNames:
                    requestStub = new DrsCrackNamesRequest();
                    break;

                case DrsuapiMethodOpnums.DrsWriteSPN:
                    requestStub = new DrsWriteSpnRequest();
                    break;

                case DrsuapiMethodOpnums.DrsRemoveDsServer:
                    requestStub = new DrsRemoveDsServerRequest();
                    break;

                case DrsuapiMethodOpnums.DrsRemoveDsDomain:
                    requestStub = new DrsRemoveDsDomainRequest();
                    break;

                case DrsuapiMethodOpnums.DrsDomainControllerInfo:
                    requestStub = new DrsDomainControllerInfoRequest();
                    break;

                case DrsuapiMethodOpnums.DrsAddEntry:
                    requestStub = new DrsAddEntryRequest();
                    break;

                case DrsuapiMethodOpnums.DrsExecuteKcc:
                    requestStub = new DrsExecuteKccRequest();
                    break;

                case DrsuapiMethodOpnums.DrsGetReplInfo:
                    requestStub = new DrsGetReplInfoRequest();
                    break;

                case DrsuapiMethodOpnums.DrsAddSidHistory:
                    requestStub = new DrsAddSidHistoryRequest();
                    break;

                case DrsuapiMethodOpnums.DrsGetMemberships2:
                    requestStub = new DrsGetMemberships2Request();
                    break;

                case DrsuapiMethodOpnums.DrsReplicaVerifyObjects:
                    requestStub = new DrsReplicaVerifyObjectsRequest();
                    break;

                case DrsuapiMethodOpnums.DrsGetObjectExistence:
                    requestStub = new DrsGetObjectExistenceRequest();
                    break;

                case DrsuapiMethodOpnums.DrsQuerySitesByCost:
                    requestStub = new DrsQuerySitesByCostRequest();
                    break;

                case DrsuapiMethodOpnums.DrsInitDemotion:
                    requestStub = new DrsInitDemotionRequest();
                    break;

                case DrsuapiMethodOpnums.DrsReplicaDemotion:
                    requestStub = new DrsReplicaDemotionRequest();
                    break;

                case DrsuapiMethodOpnums.DrsFinishDemotion:
                    requestStub = new DrsFinishDemotionRequest();
                    break;
                }
            }
            else if (interfaceType == DrsrRpcInterfaceType.DSAOP)
            {
                switch ((DsaopMethodOpnums)opnum)
                {
                case DsaopMethodOpnums.DsaPrepareScript:
                    requestStub = new DsaPrepareScriptRequest();
                    break;

                case DsaopMethodOpnums.DsaExecuteScript:
                    requestStub = new DsaExecuteScriptRequest();
                    break;
                }
            }

            return(requestStub);
        }