示例#1
0
        public void Disconnect()
        {
            HttpWebRequest get = (HttpWebRequest)WebRequest.Create("https://" + address + ":4504/AuthService/v1.2/Disconnect/");

            get.Method = "GET";
            get.Accept = "application/json, text/json";
            InitializeRequest(get);
            this.tokenPriveleges = 0;
            string value = "";

            try
            {
                String response = ExecuteRequest(get, Retries);
                connected = false;
            }
            catch (Exception err)
            {
                //might fail if older service
            }
        }
示例#2
0
 public bool HasPermission(VendorAccess permission)
 {
     return(this.tokenPriveleges.HasFlag(permission));
 }
示例#3
0
        public bool Connect()
        {
            EventWaitHandle waithandle = new EventWaitHandle(false, EventResetMode.AutoReset);
            HttpWebRequest  login      = (HttpWebRequest)WebRequest.Create("https://" + address + ":4504/AuthService/Connect");

            login.ServicePoint.Expect100Continue = false;
            login.Method    = "POST";
            login.Host      = "machine-connect.hurco.com";
            login.KeepAlive = false;

            login.Pipelined = false;
            bool             success = false;
            LoginCommandData command = new LoginCommandData()
            {
                username = vendorID, password = password
            };
            MemoryStream payloaddata = new MemoryStream();

            LoginSerializer.WriteObject(payloaddata, command);
            login.ContentType = "application/json";


            login.ContentLength = payloaddata.Length;
            try
            {
                login.BeginGetRequestStream((r) =>
                {
                    HttpWebRequest webRequest = (HttpWebRequest)r.AsyncState;
                    Stream stream             = webRequest.EndGetRequestStream(r);
                    stream.Write(payloaddata.GetBuffer(), 0, (int)payloaddata.Length);

                    login.BeginGetResponse((aresult) =>
                    {
                        HttpWebRequest request = (HttpWebRequest)aresult.AsyncState;
                        HttpWebResponse R      = null;
                        try
                        {
                            R = (HttpWebResponse)request.EndGetResponse(aresult);
                        }
                        catch (Exception e)
                        {
                            waithandle.Set();
                        }
                        if (R.ContentLength > 0 && R.StatusCode == HttpStatusCode.OK)
                        {
                            byte[] buffer = new byte[R.ContentLength];
                            R.GetResponseStream().BeginRead(buffer, 0, (int)R.ContentLength, (async) =>
                            {
                                Stream s  = (Stream)async.AsyncState;
                                int bytes = s.EndRead(async);
                                if (bytes < R.ContentLength)
                                {
                                    ReadResponse(s, buffer, (int)R.ContentLength);
                                }
                                MemoryStream resultdata = new MemoryStream(buffer);
                                TokenResponse result    = (TokenResponse)TokenSerializer.ReadObject(resultdata);
                                this.token           = result.token;
                                this.tokenPriveleges = result.tokenPriveleges;
                                s.Close();
                                R.Close();
                                waithandle.Set();
                            }, R.GetResponseStream());
                        }
                        else
                        {
                            waithandle.Set();
                        }
                        R.Close();
                        stream.Close();
                    }, login);
                }, login);

                success = waithandle.WaitOne(10000);
            }
            catch (Exception e)
            {
                success = false;
            }

            if (success && token != "")
            {
                callbackthread = new Thread(() =>
                                            EnableCallback());
                callbackthread.Start();
                connected = true;
            }

            return(success);
        }