Exemple #1
0
        /// <summary>
        /// Endpoint discovery via UDDI binding key
        /// </summary>
        /// <param name="bindingKey"></param>
        /// <param name="discoveryEndpointAddress"></param>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <param name="securityEndpointAddress"></param>
        /// <returns></returns>
        public string[] DiscoverEndpointBindingKey(string bindingKey, string authtokenb)
        {
            if (bindingKey == null)
            {
                throw new ArgumentNullException("bindingKey");
            }



            string authTok = null;

            if (authrequired && String.IsNullOrEmpty(authtokenb))
            {
                authTok = getAuthToken();
            }
            else
            {
                authTok = authtokenb;
            }

            get_bindingDetailRequest1 req = new get_bindingDetailRequest1();

            req.get_bindingDetail = new get_bindingDetail2();

            req.get_bindingDetail.bindingKey    = new string[1];
            req.get_bindingDetail.bindingKey[0] = bindingKey;

            if ((authTok != null) && (authrequired == true))
            {
                req.get_bindingDetail.authInfo = authTok;
            }

            find_bindingResponse1 response = null;

            try
            {
                response = inquiryclient.get_bindingDetail(req);
            }
            catch (Exception ex)
            {
                throw new Exception(discoveryError, ex);
            }
            get_serviceDetail2 sreq = new get_serviceDetail2();


            List <string> ret = new List <string>();

            if (response != null && response.bindingDetail != null && response.bindingDetail.bindingTemplate != null)
            {
                foreach (bindingTemplate2 bt in response.bindingDetail.bindingTemplate)
                {
                    //if (bt.Signature != null)
                    //    if (!VerifySignature(bt))
                    //        throw new Exception (signatureError);
                    accessPoint2 ap = bt.Item as accessPoint2;
                    if (ap != null)
                    {
                        string[] apList = parseResults(ap, authTok);
                        if (apList != null)
                        {
                            for (int k = 0; k < apList.Length; k++)
                            {
                                ret.Add(apList[k]);
                            }
                        }
                    }
                    hostingRedirector2 hr = bt.Item as hostingRedirector2;
                    if (hr != null)
                    {
                        string[] urls = DiscoverEndpointBindingKey(hr.bindingKey, authTok);
                        if (urls != null)
                        {
                            for (int i = 0; i < urls.Length; i++)
                            {
                                ret.Add(urls[i]);
                            }
                        }
                    }
                }
            }

            return(ret.ToArray());
        }
Exemple #2
0
        /// <summary>
        /// Endpoint discovery via UDDI binding key
        /// </summary>
        /// <param name="bindingKey"></param>
        /// <param name="discoveryEndpointAddress"></param>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <param name="securityEndpointAddress"></param>
        /// <returns></returns>
        public string[] DiscoverEndpointBindingKey(string bindingKey, string authtokenb)
        {
            if (bindingKey == null)
                throw new ArgumentNullException("bindingKey");

            string authTok = null;
            if (authrequired && String.IsNullOrEmpty(authtokenb))
                authTok = getAuthToken();
            else authTok = authtokenb;

            get_bindingDetailRequest1 req = new get_bindingDetailRequest1();
            req.get_bindingDetail = new get_bindingDetail2();

            req.get_bindingDetail.bindingKey = new string[1];
            req.get_bindingDetail.bindingKey[0] = bindingKey;

            if ((authTok != null) && (authrequired == true))
            {
                req.get_bindingDetail.authInfo = authTok;
            }

            find_bindingResponse1 response = null;
            try
            {
                response = inquiryclient.get_bindingDetail(req);
            }
            catch (Exception ex)
            {
                throw new Exception(discoveryError, ex);
            }
            get_serviceDetail2 sreq = new get_serviceDetail2();

            List<string> ret = new List<string>();
            if (response != null && response.bindingDetail != null && response.bindingDetail.bindingTemplate != null)
                foreach (bindingTemplate2 bt in response.bindingDetail.bindingTemplate)
                {
                    //if (bt.Signature != null)
                    //    if (!VerifySignature(bt))
                    //        throw new Exception (signatureError);
                    accessPoint2 ap = bt.Item as accessPoint2;
                    if (ap != null)
                    {
                        string[] apList = parseResults(ap, authTok);
                        if (apList != null)
                            for (int k = 0; k < apList.Length; k++)
                                ret.Add(apList[k]);

                    }
                    hostingRedirector2 hr = bt.Item as hostingRedirector2;
                    if (hr != null)
                    {
                        string[] urls = DiscoverEndpointBindingKey(hr.bindingKey, authTok);
                        if (urls != null)
                            for (int i = 0; i < urls.Length; i++)
                                ret.Add(urls[i]);
                    }
                }

            return ret.ToArray();
        }