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 } }
public bool HasPermission(VendorAccess permission) { return(this.tokenPriveleges.HasFlag(permission)); }
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); }