Beispiel #1
0
        // POST api/values
        public async System.Threading.Tasks.Task Post([FromBody] mmria.common.metadata.app metadata)
        {
            bool valid_login = false;

            try
            {
                string request_string         = Program.config_couchdb_url + "/_session";
                System.Net.WebRequest request = System.Net.WebRequest.Create(new System.Uri(request_string));

                request.PreAuthenticate = false;

                if (!string.IsNullOrWhiteSpace(this.Request.Cookies["AuthSession"]))
                {
                    string auth_session_value = this.Request.Cookies["AuthSession"];
                    request.Headers.Add("Cookie", "AuthSession=" + auth_session_value);
                    request.Headers.Add("X-CouchDB-WWW-Authenticate", auth_session_value);
                }

                System.Net.WebResponse response = await request.GetResponseAsync();

                System.IO.Stream       dataStream   = response.GetResponseStream();
                System.IO.StreamReader reader       = new System.IO.StreamReader(dataStream);
                string           responseFromServer = reader.ReadToEnd();
                session_response json_result        = Newtonsoft.Json.JsonConvert.DeserializeObject <session_response>(responseFromServer);

                valid_login = json_result.userCTX.name != null;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            if (valid_login)
            {
                Newtonsoft.Json.JsonSerializerSettings settings = new Newtonsoft.Json.JsonSerializerSettings();
                settings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
                string object_string = Newtonsoft.Json.JsonConvert.SerializeObject(metadata, settings);
                string hash          = GetHash(object_string);
                if (current_edit_list ["metadata"].id != hash)
                {
                    Current_Edit current = new Current_Edit();
                    current.id        = hash;
                    current.metadata  = object_string;
                    current.edit_type = "json";

                    current_edit_list ["metadata"] = current;
                }
            }
        }
Beispiel #2
0
        public async System.Threading.Tasks.Task <IEnumerable <session_response> > Get()
        {
            try
            {
                string request_string         = Program.config_couchdb_url + "/session";
                System.Net.WebRequest request = System.Net.WebRequest.Create(new Uri(request_string));

                request.PreAuthenticate = false;

                System.Net.WebResponse response = await request.GetResponseAsync();

                System.IO.Stream       dataStream   = response.GetResponseStream();
                System.IO.StreamReader reader       = new System.IO.StreamReader(dataStream);
                string           responseFromServer = reader.ReadToEnd();
                session_response json_result        = Newtonsoft.Json.JsonConvert.DeserializeObject <session_response>(responseFromServer);

                if (response.Headers["Set-Cookie"] != null)
                {
                    this.Response.Headers.Add("Set-Cookie", response.Headers["Set-Cookie"]);
                    string[] set_cookie = response.Headers["Set-Cookie"].Split(';');
                    string[] auth_array = set_cookie[0].Split('=');
                    if (auth_array.Length > 1)
                    {
                        string auth_session_token = auth_array[1];
                        json_result.auth_session = auth_session_token;
                    }
                    else
                    {
                        json_result.auth_session = "";
                    }
                }

                session_response[] result = new session_response[]
                {
                    json_result
                };

                return(result);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            return(null);
        }
Beispiel #3
0
        // POST api/values
        public async System.Threading.Tasks.Task Post()
        {
            bool valid_login = false;

            mmria.common.metadata.app metadata = null;

            try
            {
                System.IO.Stream dataStream0 = await this.Request.Content.ReadAsStreamAsync();

                // Open the stream using a StreamReader for easy access.
                //dataStream0.Seek(0, System.IO.SeekOrigin.Begin);
                System.IO.StreamReader reader0 = new System.IO.StreamReader(dataStream0);
                // Read the content.
                string temp = reader0.ReadToEnd();

                metadata = Newtonsoft.Json.JsonConvert.DeserializeObject <mmria.common.metadata.app>(temp);

                //string metadata = DecodeUrlString(temp);
            }
            catch (Exception ex)
            {
            }


            try
            {
                string request_string         = Program.config_couchdb_url + "/_session";
                System.Net.WebRequest request = System.Net.WebRequest.Create(new System.Uri(request_string));

                request.PreAuthenticate = false;

                if (this.Request.Headers.Contains("Cookie") && this.Request.Headers.GetValues("Cookie").Count() > 0)
                {
                    string[] cookie_set = this.Request.Headers.GetValues("Cookie").First().Split(';');
                    for (int i = 0; i < cookie_set.Length; i++)
                    {
                        string[] auth_session_token = cookie_set[i].Split('=');
                        if (auth_session_token[0].Trim() == "AuthSession")
                        {
                            request.Headers.Add("Cookie", "AuthSession=" + auth_session_token[1]);
                            request.Headers.Add("X-CouchDB-WWW-Authenticate", auth_session_token[1]);
                            break;
                        }
                    }
                }

                System.Net.WebResponse response = await request.GetResponseAsync();

                System.IO.Stream       dataStream   = response.GetResponseStream();
                System.IO.StreamReader reader       = new System.IO.StreamReader(dataStream);
                string           responseFromServer = reader.ReadToEnd();
                session_response json_result        = Newtonsoft.Json.JsonConvert.DeserializeObject <session_response>(responseFromServer);

                valid_login = json_result.userCTX.name != null;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            if (valid_login)
            {
                Newtonsoft.Json.JsonSerializerSettings settings = new Newtonsoft.Json.JsonSerializerSettings();
                settings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
                string object_string = Newtonsoft.Json.JsonConvert.SerializeObject(metadata, settings);
                string hash          = GetHash(object_string);
                if (current_edit_list ["metadata"].id != hash)
                {
                    Current_Edit current = new Current_Edit();
                    current.id        = hash;
                    current.metadata  = object_string;
                    current.edit_type = "json";

                    current_edit_list ["metadata"] = current;
                }
            }
        }
Beispiel #4
0
        public async System.Threading.Tasks.Task <IEnumerable <session_response> > Get()
        {
            try
            {
                string request_string         = Program.config_couchdb_url + "/_session";
                System.Net.WebRequest request = System.Net.WebRequest.Create(new Uri(request_string));

                request.PreAuthenticate = false;



                if (!string.IsNullOrWhiteSpace(this.Request.Cookies["AuthSession"]))
                {
                    string auth_session_value = this.Request.Cookies["AuthSession"];
                    request.Headers.Add("Cookie", "AuthSession=" + auth_session_value);
                    request.Headers.Add("X-CouchDB-WWW-Authenticate", auth_session_value);
                }

/*
 *                              if(this.Request.Headers.Contains("Cookie") && this.Request.Headers.GetValues("Cookie").Count() > 0)
 *                              {
 *                                      string[] cookie_set = this.Request.Headers.GetValues("Cookie").First().Split(';');
 *                                      for(int i = 0; i < cookie_set.Length; i++)
 *                                      {
 *                                              string[] auth_session_token = cookie_set[i].Split('=');
 *                                              if(auth_session_token[0].Trim() == "AuthSession")
 *                                              {
 *                                                      request.Headers.Add("Cookie", "AuthSession=" + auth_session_token[1]);
 *                                                      request.Headers.Add("X-CouchDB-WWW-Authenticate", auth_session_token[1]);
 *                                                      break;
 *                                              }
 *                                      }
 *                              }
 */

                System.Net.WebResponse response = await request.GetResponseAsync();

                System.IO.Stream       dataStream   = response.GetResponseStream();
                System.IO.StreamReader reader       = new System.IO.StreamReader(dataStream);
                string           responseFromServer = reader.ReadToEnd();
                session_response json_result        = Newtonsoft.Json.JsonConvert.DeserializeObject <session_response>(responseFromServer);

                if (response.Headers["Set-Cookie"] != null)
                {
                    string[] set_cookie = response.Headers["Set-Cookie"].Split(';');
                    string[] auth_array = set_cookie[0].Split('=');
                    if (auth_array.Length > 1)
                    {
                        string auth_session_token = auth_array[1];
                        json_result.auth_session = auth_session_token;
                    }
                    else
                    {
                        json_result.auth_session = "";
                    }
                }

                /*
                 * < HTTP/1.1 200 OK
                 * < Set-Cookie: AuthSession=YW5uYTo0QUIzOTdFQjrC4ipN-D-53hw1sJepVzcVxnriEw;
                 * < Version=1; Path=/; HttpOnly
                 * > ...
                 * <
                 * {"ok":true}*/

                session_response[] result = new session_response[]
                {
                    json_result
                };

                return(result);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            return(null);
        }