Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
        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();
            });
        }
Exemple #3
0
 /// <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;
     }
 }