public IfdAPISession LogIn(string email, string password)
        {
            //read a resource from a REST url
            Uri uri = new Uri(baseUrl + "/api/4.0/session/login");

            //Create the request object
            WebRequest req = WebRequest.Create(uri);
            var        msg = String.Format("email={0}&password={1}", email, password);
            //msg = HttpUtility.UrlEncode(msg);
            var data = Encoding.UTF8.GetBytes(msg);

            req.Method        = "POST";
            req.ContentLength = data.Length;
            req.ContentType   = "application/x-www-form-urlencoded";
            using (var outStream = req.GetRequestStream())
            {
                outStream.Write(data, 0, data.Length);

                try
                {
                    using (var resp = req.GetResponse())
                    {
                        Stream stream = resp.GetResponseStream();
                        _session = Deserialize <IfdAPISession>(stream);
                        return(_session);
                    }
                }
                catch (Exception)
                {
                    return(null);
                }
            }
        }
예제 #2
0
파일: bsdd.cs 프로젝트: youshengCode/bSDD
 public Bsdd(string url, string email, string password)
 {
     BaseUrl    = $"{url}/api/{Version}";
     restclient = new RestClient(BaseUrl);
     Session    = Login(email, password);
     GetLanguages();
 }
예제 #3
0
파일: bsdd.cs 프로젝트: youshengCode/bSDD
 public Bsdd()
 {
     Protocol   = "http";
     Domain     = "bsdd.buildingsmart.org";
     BaseUrl    = Protocol + "://" + Domain + "/api/4.0";
     restclient = new RestClient(BaseUrl);
     Session    = new IfdAPISession();
     GetLanguages();
 }
예제 #4
0
파일: bsdd.cs 프로젝트: youshengCode/bSDD
        private IfdAPISession Login(string email, string password)
        {
            var request = new RestRequest("/session/login", Method.POST);

            request.AddParameter("email", email);
            request.AddParameter("password", password);

            var           response = restclient.Execute <IfdAPISession>(request);
            IfdAPISession session  = response.Data;

            return(session);
        }
        //based on the code from here: http://stackoverflow.com/questions/11164275/how-to-add-cookies-to-webrequest
        private bool SetSessionCookie(WebRequest webRequest, IfdAPISession session)
        {
            Cookie         cookie      = new Cookie("peregrineapisessionid", session.Guid);
            HttpWebRequest httpRequest = webRequest as HttpWebRequest;

            if (httpRequest == null)
            {
                return(false);
            }

            if (httpRequest.CookieContainer == null)
            {
                httpRequest.CookieContainer = new CookieContainer();
            }

            httpRequest.CookieContainer.Add(cookie);
            return(true);
        }