/// <summary> /// Checks user auth credentials correctness /// </summary> /// <returns> True if logic/password are correct </returns> public bool TryLogin(string login, string password, string email) { try { var client = new RestClient("http://" + ConfigManager.ServerIP + ":8000/api/check_user"); var request = new RestRequest(Method.POST); request.AddHeader("cache-control", "no-cache"); string authtoken = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(login + ":" + password)); request.AddHeader("authorization", "Basic " + authtoken); IRestResponse response = client.Execute(request); if (response.Content == "{\"message\":\"Credentials are correct.\"}") { InfoSaver.StoreUserInfo(login, password, email); IsLoggedIn = true; return(true); } return(false); } catch (Exception e) { UIManager.ShowMessage(e.Message); return(false); } }
private static async void SendFileAsync(string type, string path, string port = "8000", string additionalKeys = "") { await Task.Run(() => { HttpWebRequest requestToServerEndpoint = (HttpWebRequest)WebRequest.Create("http://" + _ipAddress + ":" + port + "/api/" + type + "?email=" + InfoSaver.GetEmail() + additionalKeys); string boundaryString = "----SomeRandomText"; string fileUrl = path; requestToServerEndpoint.Method = WebRequestMethods.Http.Post; requestToServerEndpoint.ContentType = "multipart/form-data; boundary=" + boundaryString; requestToServerEndpoint.KeepAlive = true; requestToServerEndpoint.Credentials = System.Net.CredentialCache.DefaultCredentials; MemoryStream postDataStream = new MemoryStream(); StreamWriter postDataWriter = new StreamWriter(postDataStream); postDataWriter.Write("\r\n--" + boundaryString + "\r\n"); postDataWriter.Write("Content-Disposition: form-data;" + "name=\"{0}\";" + "filename=\"{1}\"" + "\r\nContent-Type: {2}\r\n\r\n", "file", Path.GetFileName(fileUrl), Path.GetExtension(fileUrl)); postDataWriter.Flush(); FileStream fileStream = new FileStream(fileUrl, FileMode.Open, FileAccess.Read); byte[] buffer = new byte[1024]; int bytesRead = 0; while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0) { postDataStream.Write(buffer, 0, bytesRead); } fileStream.Close(); postDataWriter.Write("\r\n--" + boundaryString + "--\r\n"); postDataWriter.Flush(); requestToServerEndpoint.ContentLength = postDataStream.Length; using (Stream s = requestToServerEndpoint.GetRequestStream()) { postDataStream.WriteTo(s); } Console.WriteLine(requestToServerEndpoint.GetResponse().Headers); while (!requestToServerEndpoint.HaveResponse) { Thread.Sleep(1000); } postDataStream.Close(); }); }
/// <summary> /// Checks if user data already stored locally and tries to login /// </summary> public void RetrieveLoginStatus() { if (InfoSaver.UserIsStored()) { var result = TryLogin(InfoSaver.GetUser(), InfoSaver.GetPass(), InfoSaver.GetEmail()); IsLoggedIn = result; } else { IsLoggedIn = false; } }