예제 #1
0
        public void PublishBinding(string url, string serviceKey)
        {
            try
            {
                get_authTokenRequest r = new get_authTokenRequest();
                r.get_authToken        = new get_authToken1();
                r.get_authToken.cred   = util.DE(encryptedpassword);
                r.get_authToken.userID = username;
                get_authTokenResponse res = securityclient.get_authToken(r);

                save_bindingRequest req = new save_bindingRequest();
                req.save_binding                               = new save_binding1();
                req.save_binding.authInfo                      = res.authToken.authInfo;
                req.save_binding.bindingTemplate               = new bindingTemplate2[1];
                req.save_binding.bindingTemplate[0]            = new bindingTemplate2();
                req.save_binding.bindingTemplate[0].serviceKey = serviceKey;
                accessPoint2 ap = new accessPoint2();
                ap.useType = "endpoint";
                ap.Value   = url;
                req.save_binding.bindingTemplate[0].Item = ap;


                find_bindingResponse1 res2 = publishclient.save_binding(req);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #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());
        }