예제 #1
0
        /// <summary>
        /// Creates a SearchResultReference. For LDAP v3 only.
        /// </summary>
        /// <param name="context">The user context which contains message ID.</param>
        /// <param name="referenceUrls">The referenced URL.</param>
        /// <returns>The packet that contains the response.</returns>
        internal override AdtsSearchResultReferencePacket CreateSearchResultReference(
            AdtsLdapContext context,
            string[] referenceUrls)
        {
            int length = (referenceUrls != null) ? referenceUrls.Length : 0;

            LDAPURL[] ldapUrlArray = new LDAPURL[length];
            for (int i = 0; i < length; i++)
            {
                ldapUrlArray[i] = new LDAPURL(referenceUrls[i]);
            }
            SearchResultReference reference = new SearchResultReference(ldapUrlArray);

            LDAPMessage_protocolOp operation = new LDAPMessage_protocolOp();

            operation.SetData(LDAPMessage_protocolOp.searchResRef, reference);

            LDAPMessage message = new LDAPMessage(new MessageID(context.MessageId), operation, null);
            AdtsSearchResultReferencePacket packet = new AdtsSearchResultReferencePacket();

            packet.ldapMessagev3 = message;
            packet.messageId     = context.MessageId;

            return(packet);
        }
예제 #2
0
        /// <summary>
        /// Creates a Referral object from a list of reference URLs.
        /// </summary>
        /// <param name="referrals">Reference URLs.</param>
        /// <returns>The referral object. If the refUrls is null, return null.</returns>
        private Referral CreateReferral(string[] refUrls)
        {
            if (refUrls == null)
            {
                return(null);
            }

            int length = refUrls.Length;

            LDAPURL[] ldapUrls = new LDAPURL[length];
            for (int i = 0; i < length; i++)
            {
                ldapUrls[i] = new LDAPURL(refUrls[i]);
            }

            Referral referral = new Referral(ldapUrls);

            return(referral);
        }