Exemplo n.º 1
0
        public GoogleDrive(string url, Dictionary<string, string> options)
        {
            var uri = new Utility.Uri(url);

            m_path = uri.HostAndPath;
            if (!m_path.EndsWith("/"))
                m_path += "/";

            string authid = null;
            if (options.ContainsKey(AUTHID_OPTION))
                authid = options[AUTHID_OPTION];

            m_oauth = new OAuthHelper(authid, this.ProtocolKey) { AutoAuthHeader = true };
            m_filecache = new Dictionary<string, GoogleDriveFolderItem[]>();
        }
Exemplo n.º 2
0
        public OneDrive(string url, Dictionary<string, string> options)
        {
            var uri = new Utility.Uri(url);

            m_rootfolder = uri.Host;
            m_prefix = "/" + uri.Path;
            if (!m_prefix.EndsWith("/"))
                m_prefix += "/";

            string authid = null;
            if (options.ContainsKey(AUTHID_OPTION))
                authid = options[AUTHID_OPTION];

            m_oauth = new OAuthHelper(authid, this.ProtocolKey);
        }
        public void GetBookmarksTest()
        {
            Login l = new Login();
            WebBrowser wb = l.GetBrowserElement();
            wb.DocumentCompleted += delegate(Object sender, WebBrowserDocumentCompletedEventArgs args)
            {
                OAuthHelper h = new OAuthHelper(wb); // TODO: Passenden Wert initialisieren
                InstapaperConnector target = new InstapaperConnector(h); // TODO: Passenden Wert initialisieren
                Folder folder = new Folder(target);
                folder.Id = Folder.STARRED;
                folder.GetBookmarks(delegate(IAsyncResult result)
                {
                    // Should return an empty List in case of zero folders

                    if (folder.Bookmarks.Count > 0)
                        foreach (Bookmark b in folder.Bookmarks)
                            Assert.IsNotNull(b);
                });

            };
        }
        public async Task<AccountConfiguration> CreateAccount()
        {
            _oAuthHelper = new OAuthHelper();

            var isOk = OAuth2Flow.TryAuthenticate(this);
            if (!isOk) return null;

            var api = await OneDriveHelper.GetApi(_accountSession);
            var drive = await api.Drive.Request().GetAsync().ConfigureAwait(false);

            var account = new AccountConfiguration
            {
                Type = StorageType.OneDrive,
                Name = drive.Owner.User.DisplayName,
                Id = drive.Owner.User.Id,
                Secret = _accountSession.RefreshToken
            };


            return account;
        }
        public void GetBookmarkText()
        {
            Login l = new Login();
            WebBrowser wb = l.GetBrowserElement();
            wb.DocumentCompleted += delegate(Object sender, WebBrowserDocumentCompletedEventArgs args)
            {
                OAuthHelper h = new OAuthHelper(wb); // TODO: Passenden Wert initialisieren
                InstapaperConnector target = new InstapaperConnector(h); // TODO: Passenden Wert initialisieren
                Folder folder = new Folder(target);
                folder.Id = Folder.STARRED;
                folder.GetBookmarks(delegate(IAsyncResult result)
                {
                    folder.Bookmarks[0].GetText(delegate(IAsyncResult res)
                    {
                        Assert.IsTrue(folder.Bookmarks[0].HtmlText.Length > 0);
                    });

                });

            };
        }
Exemplo n.º 6
0
        public AmzCD(string url, Dictionary<string, string> options)
        {
            var uri = new Utility.Uri(url);

            m_path = uri.HostAndPath;
            if (!m_path.EndsWith("/"))
                m_path += "/";

            string authid = null;
            if (options.ContainsKey(AUTHID_OPTION))
                authid = options[AUTHID_OPTION];

            string labels = DEFAULT_LABELS;
            if (options.ContainsKey(LABELS_OPTION))
                labels = options[LABELS_OPTION];

            if (!string.IsNullOrWhiteSpace(labels))
                m_labels = labels.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);

            m_oauth = new OAuthHelper(authid, this.ProtocolKey) { AutoAuthHeader = true };
            m_userid = authid.Split(new string[] {":"}, StringSplitOptions.RemoveEmptyEntries).First();
        }
Exemplo n.º 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            appendlog("Twitter page load started");
            if (Request.QueryString["oauth_token"] != null && Request.QueryString["oauth_verifier"] != null)
            {
                appendlog("variables are not null");
                string oauth_token = Request.QueryString["oauth_token"];
                string oauth_verifier = Request.QueryString["oauth_verifier"];
                //string oauth_token = "57YzJgAAAAAAgK9fAAABTg-PL1s";
                //string oauth_verifier = "FHlw9bvLeqfGuFLG4yh0rFZ26iGZHgs6";

                appendlog("token is : " + oauth_token);
                appendlog("verifier is : " + oauth_verifier);

                OAuthHelper oauthhelper = new OAuthHelper();
                appendlog("helper initialized, going to get token");
                oauthhelper.GetUserTwAccessToken(oauth_token, oauth_verifier);

                appendlog("token is : " + oauthhelper.oauth_access_token);

                if (string.IsNullOrEmpty(oauthhelper.oauth_error))
                {
                    Response.Redirect("Musician.aspx?twtoken=" + oauthhelper.oauth_access_token + "&twsecret=" + oauthhelper.oauth_access_token_secret + "&twscreenname=" + oauthhelper.screen_name + "&twuserid=" + oauthhelper.user_id);

                    //appendlog("inside no error block");
                    //Session["twtoken"] = oauthhelper.oauth_access_token;
                    //Session["twsecret"] = oauthhelper.oauth_access_token_secret;
                    //Session["twuserid"] = oauthhelper.user_id;
                    //Session["twname"] = oauthhelper.screen_name;

                    //Response.Write("<b>AccessToken=</b>" + oauthhelper.oauth_access_token);
                    //Response.Write("<br /><b>Access Secret=</b>" + oauthhelper.oauth_access_token_secret);
                    //Response.Write("<br /><b>Screen Name=</b>" + oauthhelper.screen_name);
                    //Response.Write("<br /><b>Twitter User ID=</b>" + oauthhelper.user_id);
                }
                //else
                //    Response.Write(oauthhelper.oauth_error);
            }
        }
Exemplo n.º 8
0
using Newtonsoft.Json;
using Duplicati.Library.Backend.GoogleServices;
Exemplo n.º 9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if(Request.QueryString["redirectid"]==null)
                {

                if(Session["USERINFO"]==null)
                {

                    FaceBookConnect.API_Key = "794873443927888";
                    FaceBookConnect.API_Secret = "9acae58fe0463444952937a30c580db7";

                    //FaceBookConnect.API_Key = "794907040591195";
                    //FaceBookConnect.API_Secret = "c04f2ce2aa23fdae3ad06fce3ab78cb0";

                TwitterConnect.API_Key = "xZEV2y8Tlvu4RbZWuVtsFhGJO";
                TwitterConnect.API_Secret = "kokijgTSJnKmOLtEMlvZJtZMl0Dd0vFxqmK4kmIf1oVxFWgF9r";

                GoogleConnect.ClientId = "7682337252-coj546o017md56kuf69temoqh4hl3qt7.apps.googleusercontent.com";
                GoogleConnect.ClientSecret = "KMxXZCqWqk1YUtciM4g3IeuV";

                GoogleConnect.RedirectUri = Request.Url.AbsoluteUri.Split('?')[0];

                if (!IsPostBack)
                {
                    Session["USERINFO"] = null;

                    //clearuserpass();
                    chk_remember.Checked = true;

                    if (Request.Cookies["UserName"] != null && Request.Cookies["Password"] != null)
                    {
                        txt_loginemail.Value = Request.Cookies["UserName"].Value;
                       // txt_loginpass.Value = Request.Cookies["Password"].Value;
                        txt_loginpass.Attributes["value"] = Request.Cookies["Password"].Value;

                    }
                    if (Request.Cookies["LBRUserName"] != null && Request.Cookies["LBRPassword"] != null)
                    {
                        txt_loginemail.Value = Request.Cookies["LBRUserName"].Value;
                        // txt_loginpass.Value = Request.Cookies["Password"].Value;
                        txt_loginpass.Attributes["value"] = Request.Cookies["LBRPassword"].Value;
                        txt_loginpass.Text = Request.Cookies["LBRPassword"].Value;
                        autologin();
                       // Response.Cookies["UserName"].Value = Request.Cookies["LBRUserName"].Value;
                       // Response.Cookies["Password"].Value = Request.Cookies["LBRPassword"].Value;
                    }
                    //if (Response.Cookies["LBRADMINLOGIN"].Values["UNAME"] != null)
                    //{
                    //    txt_loginemail.Value = Response.Cookies["LBRADMINLOGIN"].Values["UNAME"];
                    //}
                    //if (Response.Cookies["LBRADMINLOGIN"].Values["UPASS"] != null)
                    //{
                    //    txt_loginpass.Value = Response.Cookies["LBRADMINLOGIN"].Values["UPASS"];
                    //}
                    string code = "";
                    if (Request.QueryString["oauth_token"] != null && Request.QueryString["oauth_verifier"] != null)
                    {
                        string oauth_token = Request.QueryString["oauth_token"];
                        string oauth_verifier = Request.QueryString["oauth_verifier"];

                        OAuthHelper oauthhelper = new OAuthHelper();
                        oauthhelper.GetUserTwAccessToken(oauth_token, oauth_verifier);

                        if (string.IsNullOrEmpty(oauthhelper.oauth_error))
                        {
                            Session["twtoken"] = oauthhelper.oauth_access_token;
                            Session["twsecret"] = oauthhelper.oauth_access_token_secret;
                            Session["twuserid"] = oauthhelper.user_id;
                            Session["twname"] = oauthhelper.screen_name;

                            LBR_SIGNUP obj = new LBR_SIGNUP();
                            //string[] split = facebook.Split(' ');
                            obj.LBR_EMAILID = oauthhelper.screen_name;
                            obj.LBR_MODIFIEDBY = 1;
                            obj.LBR_MODIFIEDTYPE = 1;
                            obj.LBR_CREATEDBY = 1;
                            obj.LBR_LOGINTYPE = 3;

                            obj.LBR_FIRSTNAME = oauthhelper.screen_name;

                            // obj.LBR_IMAGEURL = image;
                            obj.LBR_LOGINID = oauthhelper.user_id;
                            DataTable dt = BLL.checkemail(obj);
                            if (dt.Rows.Count > 0)
                            {
                                Session["USERINFO"] = dt;
                               Response.Redirect("Linkskart.aspx");
                            }
                            else
                            {
                                dt = BLL.ExecuteQuery("exec Usp_lbr_signup @OPERATION = 'signupsocial',@LBR_EMAILID='" + obj.LBR_EMAILID + "',@LBR_LOGINTYPE='" + obj.LBR_LOGINTYPE + "',@LBR_FIRSTNAME='" + obj.LBR_FIRSTNAME + "',@LBR_LASTNAME='" + obj.LBR_LASTNAME + "',@LBR_IMAGEURL='" + obj.LBR_IMAGEURL + "',@LBR_LOGINID='" + obj.LBR_LOGINID + "',@LBR_MODIFIEDBY='" + obj.LBR_MODIFIEDBY + "',@LBR_MODIFIEDTYPE='" + obj.LBR_MODIFIEDTYPE + "',@LBR_CREATEDBY='" + obj.LBR_CREATEDBY + "'");
                                if (dt.Rows.Count > 0)
                                {
                                    obj.LBR_ID = Int32.Parse(dt.Rows[0]["LBR_ID"].ToString());
                                    obj.LBR_CREATEDBY = Int32.Parse(dt.Rows[0]["LBR_ID"].ToString());
                                    obj.LBR_MODIFIEDBY = Int32.Parse(dt.Rows[0]["LBR_ID"].ToString());
                                    bool status = BLL.setdefaulttabs(obj);
                                    Session["USERINFO"] = dt;
                                    Response.Redirect("Linkskart.aspx");
                                }
                                else
                                {
                                    BLL.ShowMessage(this, "Please try again after sometime");
                                }
                            }

                        }
                        else
                            Response.Write(oauthhelper.oauth_error);
                    }
                    if (Session["logintype"]!=null)
                    {
                    if(Int32.Parse(Session["logintype"].ToString())==4)
                    {
                    if (!string.IsNullOrEmpty(Request.QueryString["code"]))

                    {
                         code = Request.QueryString["code"];
                        string json = GoogleConnect.Fetch("me", code);

                        GoogleProfile profile = new JavaScriptSerializer().Deserialize<GoogleProfile>(json);
                        LBR_SIGNUP obj = new LBR_SIGNUP();
                        obj.LBR_EMAILID = profile.Emails.Find(email => email.Type == "account").Value;
                        obj.LBR_MODIFIEDBY = 1;
                        obj.LBR_MODIFIEDTYPE = 1;
                        obj.LBR_CREATEDBY = 1;
                        obj.LBR_LOGINTYPE = 4;
                        obj.USERS_STATUS = true;
                        obj.LBR_IMAGEURL = profile.Image.Url;
                        obj.LBR_FIRSTNAME = profile.DisplayName;
                        obj.LBR_LOGINID = profile.Id;
                        DataTable dt = BLL.checkemail(obj);
                        if (dt.Rows.Count > 0)
                        {
                            Session["USERINFO"] = dt;
                            Response.Redirect("Linkskart.aspx");
                        }
                        else
                        {
                            dt = BLL.ExecuteQuery("exec Usp_lbr_signup @OPERATION = 'signupsocial',@LBR_EMAILID='" + obj.LBR_EMAILID + "',@LBR_LOGINTYPE='" + obj.LBR_LOGINTYPE + "',@LBR_FIRSTNAME='" + obj.LBR_FIRSTNAME + "',@LBR_LASTNAME='" + obj.LBR_LASTNAME + "',@LBR_IMAGEURL='" + obj.LBR_IMAGEURL + "',@LBR_LOGINID='" + obj.LBR_LOGINID + "',@LBR_MODIFIEDBY='" + obj.LBR_MODIFIEDBY + "',@LBR_MODIFIEDTYPE='" + obj.LBR_MODIFIEDTYPE + "',@LBR_CREATEDBY='" + obj.LBR_CREATEDBY + "'");
                            if (dt.Rows.Count > 0)
                            {
                                obj.LBR_ID = Int32.Parse(dt.Rows[0]["LBR_ID"].ToString());
                                obj.LBR_CREATEDBY = Int32.Parse(dt.Rows[0]["LBR_ID"].ToString());
                                obj.LBR_MODIFIEDBY=Int32.Parse(dt.Rows[0]["LBR_ID"].ToString());
                                bool status = BLL.setdefaulttabs(obj);
                                Session["USERINFO"] = dt;
                                Response.Redirect("Linkskart.aspx");
                            }
                            else
                            {
                                BLL.ShowMessage(this, "Please try again after sometime");
                            }
                        }
                        //lblId.Text = profile.Id;
                        //lblName.Text = profile.DisplayName;
                        //lblEmail.Text = profile.Emails.Find(email => email.Type == "account").Value;
                        //lblGender.Text = profile.Gender;
                        //lblType.Text = profile.ObjectType;
                        //ProfileImage.ImageUrl = profile.Image.Url;
                        //pnlProfile.Visible = true;
                        //btnLogin.Enabled = false;
                    }
                    if (Request.QueryString["error"] == "access_denied")
                    {
                        ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "alert('Access denied.')", true);
                    }

                }

                    if (Int32.Parse(Session["logintype"].ToString()) == 2)
                    {
                     code = Request.QueryString["code"];
                    if (!string.IsNullOrEmpty(code))
                    {
                        string data = FaceBookConnect.Fetch(code, "me");
                        FaceBookUser faceBookUser = new JavaScriptSerializer().Deserialize<FaceBookUser>(data);
                        faceBookUser.PictureUrl = string.Format("https://graph.facebook.com/{0}/picture", faceBookUser.Id);
                       string facebookid = faceBookUser.Id;
                       string username = faceBookUser.UserName;
                       string facebook = faceBookUser.Name;
                      string image = faceBookUser.PictureUrl;
                       string email = faceBookUser.Email;
                       LBR_SIGNUP obj = new LBR_SIGNUP();
                       string[] split = facebook.Split(' ');
                       obj.LBR_EMAILID = email;
                       obj.LBR_MODIFIEDBY = 1;
                       obj.LBR_MODIFIEDTYPE = 1;
                       obj.LBR_CREATEDBY = 1;
                       obj.LBR_LOGINTYPE = 2;
                        if(split.Length==2)
                        {
                       obj.LBR_FIRSTNAME = split[0];
                       obj.LBR_LASTNAME = split[1];
                        }
                        else
                        {
                            obj.LBR_FIRSTNAME = facebook;
                        }
                        obj.LBR_IMAGEURL = image;
                        obj.LBR_LOGINID = facebookid;
                       DataTable dt = BLL.checkemail(obj);
                       if(dt.Rows.Count>0)
                       {
                           Session["USERINFO"] = dt;
                           Response.Redirect("Linkskart.aspx");
                       }
                        else
                       {
                           dt = BLL.ExecuteQuery("exec Usp_lbr_signup @OPERATION = 'signupsocial',@LBR_EMAILID='" + obj.LBR_EMAILID + "',@LBR_LOGINTYPE='" + obj.LBR_LOGINTYPE + "',@LBR_FIRSTNAME='" + obj.LBR_FIRSTNAME + "',@LBR_LASTNAME='" + obj.LBR_LASTNAME + "',@LBR_IMAGEURL='" + obj.LBR_IMAGEURL + "',@LBR_LOGINID='" + obj.LBR_LOGINID + "',@LBR_MODIFIEDBY='" + obj.LBR_MODIFIEDBY + "',@LBR_MODIFIEDTYPE='" + obj.LBR_MODIFIEDTYPE + "',@LBR_CREATEDBY='"+ obj.LBR_CREATEDBY +"'");
                      if(dt.Rows.Count>0)
                      {
                          obj.LBR_ID = Int32.Parse(dt.Rows[0]["LBR_ID"].ToString());
                          obj.LBR_CREATEDBY = Int32.Parse(dt.Rows[0]["LBR_ID"].ToString());
                          obj.LBR_MODIFIEDBY = Int32.Parse(dt.Rows[0]["LBR_ID"].ToString());
                          bool status = BLL.setdefaulttabs(obj);
                          Session["USERINFO"] = dt;
                          Response.Redirect("Linkskart.aspx");
                      }
                           else
                      {
                          BLL.ShowMessage(this, "Please try again after sometime");
                      }
                       }

                    }
                    else
                    {

                    }
                    }
                }
                }
                }
                else
                {
                    Response.Redirect("Linkskart.aspx",false);
                }
            }
            else
            {
                DataTable dt_redirecturl = BLL.ExecuteQuery("select * from lbr_links where link_id="+ Request.QueryString["redirectid"].ToString() +"");
               if(dt_redirecturl.Rows.Count>0)
               {
               Response.Redirect(""+ dt_redirecturl.Rows[0]["link_path"].ToString() +"");
               }
                }
            }
            catch (Exception ex)
            {

            }
        }
Exemplo n.º 10
0
        public void RespondWithChallenge(IHttpContext context)
        {
            var challengeData = new Dictionary <string, string>
            {
                { OAuthHelper.Keys.ChallengeTimestamp, OAuthServerHelper.DateTimeToString(SystemTime.UtcNow) },
                { OAuthHelper.Keys.ChallengeSalt, OAuthHelper.BytesToString(OAuthServerHelper.RandomBytes(OAuthHelper.Keys.ChallengeSaltLength)) }
            };

            var responseData = new Dictionary <string, string>
            {
                { OAuthHelper.Keys.RSAExponent, OAuthServerHelper.RSAExponent },
                { OAuthHelper.Keys.RSAModulus, OAuthServerHelper.RSAModulus },
                { OAuthHelper.Keys.Challenge, OAuthServerHelper.EncryptSymmetric(OAuthHelper.DictionaryToString(challengeData)) }
            };

            context.SetStatusToUnauthorized();
            context.Response.AddHeader("WWW-Authenticate", OAuthHelper.Keys.WWWAuthenticateHeaderKey + " " + OAuthHelper.DictionaryToString(responseData));
        }
Exemplo n.º 11
0
        public override int CreatePoTo(List <POTOCreate> po_to_create, int actionId)
        {
            try
            {
                string axBaseUrl    = ConfigurationManager.AppSettings["base_url"];
                var    clientconfig = new ClientConfiguration(axBaseUrl + "/data",
                                                              ConfigurationManager.AppSettings["client_secret"],
                                                              axBaseUrl,
                                                              ConfigurationManager.AppSettings["ax_oauth_token_url"],
                                                              ConfigurationManager.AppSettings["client_key"]);
                var oAuthHelper = new OAuthHelper(clientconfig);

                List <AGROrderDTO> a = new List <AGROrderDTO>();

                string dataarea = ConfigurationManager.AppSettings["DataAreaId"];

                AXODataContextConnector <AGROrderDTO> axConnector = new CreateOrder <AGROrderDTO>(oAuthHelper, logMessageHandler: WriteLine, enableCrossCompany: true);
                if (po_to_create.Any())
                {
                    var o = po_to_create.First();

                    AGROrderDTO order = new AGROrderDTO();
                    order.ARGId       = o.order_id.ToString();
                    order.OrderFrom   = o.order_from_location_no; //"1004"; //vendor number;
                    order.OrderTo     = o.location_no;            //"DC"; //warehouse;
                    order.OrderType   = o.vendor_location_type.ToLower() == "vendor" ? AGROrderType.PO : AGROrderType.TO;
                    order.ReceiveDate = o.est_delivery_date < DateTime.Now.Date ? DateTime.Now.Date : o.est_delivery_date;
                    order.OrderStatus = AGROrderStatus.Created;

                    ArrayList orderline = new ArrayList();

                    for (int i = 0; i < po_to_create.Count; i++)
                    {
                        AGROrderLineDTO line = new AGROrderLineDTO();
                        line.ARGId   = order.ARGId;
                        line.Color   = po_to_create[i].color;
                        line.Config  = "";
                        line.ItemId  = po_to_create[i].item_no;
                        line.LineNum = i + 1;
                        line.Qty     = po_to_create[i].unit_qty_chg;
                        line.Size    = po_to_create[i].size;
                        line.Style   = po_to_create[i].style;
                        line.OrderTo = po_to_create[i].location_no;
                        orderline.Add(line);
                    }

                    order.ArgOrderLine = orderline;

                    a.Add(order);

                    // Send the data file to the connector object:
                    var createOrder = axConnector.CreateRecordInAX(dataarea, a);
                    if (createOrder != null)
                    {
                        OnTaskCompleted(this, new ErpTaskCompletedArgs {
                            Exception = createOrder, ActionId = actionId, Status = 3
                        });
                        return(actionId);
                    }

                    order.OrderStatus = AGROrderStatus.Ready;
                    order.ArgOrderLine.Clear();
                    a = new List <AGROrderDTO>();
                    a.Add(order);

                    // Send the data file to the connector object:
                    createOrder = axConnector.CreateRecordInAX(dataarea, a);
                    OnTaskCompleted(this, new ErpTaskCompletedArgs {
                        Exception = createOrder, ActionId = actionId, Status = 3
                    });
                    return(actionId);
                }
            }
            catch (Exception e)
            {
                OnTaskCompleted(this, new ErpTaskCompletedArgs {
                    Exception = new AxBaseException {
                        ApplicationException = e
                    }, ActionId = actionId, Status = 3
                });
                return(actionId);
            }
            return(actionId);
        }
Exemplo n.º 12
0
        public override void Respond(IHttpContext context)
        {
            if (context.Request.ContentLength > MaxOAuthContentLength)
            {
                context.SetStatusToBadRequest();
                context.WriteJson(new { error = "invalid_request", error_description = "Content length should not be over " + MaxOAuthContentLength + " bytes" });
                return;
            }

            if (context.Request.ContentLength == 0)
            {
                RespondWithChallenge(context);
                return;
            }

            string requestContents;

            using (var reader = new StreamReader(context.Request.InputStream))
                requestContents = reader.ReadToEnd();

            var requestContentsDictionary = OAuthHelper.ParseDictionary(requestContents);
            var rsaExponent = requestContentsDictionary.GetOrDefault(OAuthHelper.Keys.RSAExponent);
            var rsaModulus  = requestContentsDictionary.GetOrDefault(OAuthHelper.Keys.RSAModulus);

            if (rsaExponent == null || rsaModulus == null ||
                !rsaExponent.SequenceEqual(OAuthServerHelper.RSAExponent) || !rsaModulus.SequenceEqual(OAuthServerHelper.RSAModulus))
            {
                RespondWithChallenge(context);
                return;
            }

            var encryptedData = requestContentsDictionary.GetOrDefault(OAuthHelper.Keys.EncryptedData);

            if (string.IsNullOrEmpty(encryptedData))
            {
                RespondWithChallenge(context);
                return;
            }

            var challengeDictionary = OAuthHelper.ParseDictionary(OAuthServerHelper.DecryptAsymmetric(encryptedData));
            var apiKeyName          = challengeDictionary.GetOrDefault(OAuthHelper.Keys.APIKeyName);
            var challenge           = challengeDictionary.GetOrDefault(OAuthHelper.Keys.Challenge);
            var response            = challengeDictionary.GetOrDefault(OAuthHelper.Keys.Response);

            if (string.IsNullOrEmpty(apiKeyName) || string.IsNullOrEmpty(challenge) || string.IsNullOrEmpty(response))
            {
                RespondWithChallenge(context);
                return;
            }

            var challengeData = OAuthHelper.ParseDictionary(OAuthServerHelper.DecryptSymmetric(challenge));
            var timestampStr  = challengeData.GetOrDefault(OAuthHelper.Keys.ChallengeTimestamp);

            if (string.IsNullOrEmpty(timestampStr))
            {
                RespondWithChallenge(context);
                return;
            }

            var challengeTimestamp = OAuthServerHelper.ParseDateTime(timestampStr);

            if (challengeTimestamp + MaxChallengeAge < SystemTime.UtcNow || challengeTimestamp > SystemTime.UtcNow)
            {
                // The challenge is either old or from the future
                RespondWithChallenge(context);
                return;
            }

            var apiKeyTuple = GetApiKeySecret(apiKeyName);

            if (apiKeyTuple == null)
            {
                context.SetStatusToUnauthorized();
                context.WriteJson(new { error = "unauthorized_client", error_description = "Unknown API Key" });
                return;
            }
            var apiSecret = apiKeyTuple.Item1;

            if (string.IsNullOrEmpty(apiKeyName))
            {
                context.SetStatusToUnauthorized();
                context.WriteJson(new { error = "unauthorized_client", error_description = "Invalid API Key" });
                return;
            }

            var expectedResponse = OAuthHelper.Hash(string.Format(OAuthHelper.Keys.ResponseFormat, challenge, apiSecret));

            if (response != expectedResponse)
            {
                context.SetStatusToUnauthorized();
                context.WriteJson(new { error = "unauthorized_client", error_description = "Invalid challenge response" });
                return;
            }

            var token = apiKeyTuple.Item2;

            context.Write(token.Serialize());
        }
Exemplo n.º 13
0
        public async Task <Action <HttpClient> > DoOAuthRequestAsync(string baseUrl, string oauthSource, string apiKey)
        {
            if (oauthSource == null)
            {
                throw new ArgumentNullException("oauthSource");
            }

            string serverRSAExponent = null;
            string serverRSAModulus  = null;
            string challenge         = null;

            // Note that at two tries will be needed in the normal case.
            // The first try will get back a challenge,
            // the second try will try authentication. If something goes wrong server-side though
            // (e.g. the server was just rebooted or the challenge timed out for some reason), we
            // might get a new challenge back, so we try a third time just in case.
            int tries = 0;

            while (true)
            {
                tries++;

                var handler = new WebRequestHandler();

                using (var httpClient = new HttpClient(handler))
                {
                    httpClient.DefaultRequestHeaders.TryAddWithoutValidation("grant_type", "client_credentials");
                    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")
                    {
                        CharSet = "UTF-8"
                    });

                    string data = null;
                    if (!string.IsNullOrEmpty(serverRSAExponent) && !string.IsNullOrEmpty(serverRSAModulus) && !string.IsNullOrEmpty(challenge))
                    {
                        var exponent = OAuthHelper.ParseBytes(serverRSAExponent);
                        var modulus  = OAuthHelper.ParseBytes(serverRSAModulus);

                        var apiKeyParts = apiKey.Split(new[] { '/' }, StringSplitOptions.None);
                        if (apiKeyParts.Length > 2)
                        {
                            apiKeyParts[1] = string.Join("/", apiKeyParts.Skip(1));
                        }
                        if (apiKeyParts.Length < 2)
                        {
                            throw new InvalidOperationException("Invalid API key");
                        }

                        var apiKeyName = apiKeyParts[0].Trim();
                        var apiSecret  = apiKeyParts[1].Trim();

                        data = OAuthHelper.DictionaryToString(new Dictionary <string, string> {
                            { OAuthHelper.Keys.RSAExponent, serverRSAExponent }, { OAuthHelper.Keys.RSAModulus, serverRSAModulus }, { OAuthHelper.Keys.EncryptedData, OAuthHelper.EncryptAsymmetric(exponent, modulus, OAuthHelper.DictionaryToString(new Dictionary <string, string> {
                                    { OAuthHelper.Keys.APIKeyName, apiKeyName }, { OAuthHelper.Keys.Challenge, challenge }, { OAuthHelper.Keys.Response, OAuthHelper.Hash(string.Format(OAuthHelper.Keys.ResponseFormat, challenge, apiSecret)) }
                                })) }
                        });
                    }

                    var requestUri = oauthSource;

                    var response = await httpClient.PostAsync(requestUri, data != null?(HttpContent) new CompressedStringContent(data, true) : new StringContent("")).AddUrlIfFaulting(new Uri(requestUri)).ConvertSecurityExceptionToServerNotFound();

                    if (response.IsSuccessStatusCode == false)
                    {
                        // We've already tried three times and failed
                        if (tries >= 3)
                        {
                            throw ErrorResponseException.FromResponseMessage(response);
                        }

                        if (response.StatusCode != HttpStatusCode.PreconditionFailed)
                        {
                            throw ErrorResponseException.FromResponseMessage(response);
                        }

                        var header = response.Headers.GetFirstValue("WWW-Authenticate");
                        if (header == null || header.StartsWith(OAuthHelper.Keys.WWWAuthenticateHeaderKey) == false)
                        {
                            throw new ErrorResponseException(response, "Got invalid WWW-Authenticate value");
                        }

                        var challengeDictionary = OAuthHelper.ParseDictionary(header.Substring(OAuthHelper.Keys.WWWAuthenticateHeaderKey.Length).Trim());
                        serverRSAExponent = challengeDictionary.GetOrDefault(OAuthHelper.Keys.RSAExponent);
                        serverRSAModulus  = challengeDictionary.GetOrDefault(OAuthHelper.Keys.RSAModulus);
                        challenge         = challengeDictionary.GetOrDefault(OAuthHelper.Keys.Challenge);

                        if (string.IsNullOrEmpty(serverRSAExponent) || string.IsNullOrEmpty(serverRSAModulus) || string.IsNullOrEmpty(challenge))
                        {
                            throw new InvalidOperationException("Invalid response from server, could not parse raven authentication information: " + header);
                        }

                        continue;
                    }

                    using (var stream = await response.GetResponseStreamWithHttpDecompression())
                        using (var reader = new StreamReader(stream))
                        {
                            var currentOauthToken = reader.ReadToEnd();
                            CurrentOauthToken           = currentOauthToken;
                            CurrentOauthTokenWithBearer = "Bearer " + currentOauthToken;

                            return((Action <HttpClient>)(SetAuthorization));
                        }
                }
            }
        }
Exemplo n.º 14
0
 public AuthorizationController(OAuthHelper oAuthHelper)
 {
     OAuthHelper = oAuthHelper;
 }
Exemplo n.º 15
0
 public CreateProductMaster(OAuthHelper oAuthenticationHelper, LogMessage logMessageHandler, bool enableCrossCompany) : base(oAuthenticationHelper, logMessageHandler, enableCrossCompany)
 {
 }
Exemplo n.º 16
0
        static void Main(string[] args)
        {
            Uri oDataUri = new Uri(ODataEntityPath, UriKind.Absolute);
            var context  = new Resources(oDataUri);


            context.BuildingRequest += (sender, e) =>
            {
                var uriBuilder = new UriBuilder(e.RequestUri);
                // Requires a reference to System.Web and .NET 4.6.1+
                var paramValues = HttpUtility.ParseQueryString(uriBuilder.Query);
                if (paramValues.GetValues("cross-company") == null)
                {
                    paramValues.Add("cross-company", "true");
                    uriBuilder.Query = paramValues.ToString();
                    e.RequestUri     = uriBuilder.Uri;
                }
            };


            context.SendingRequest2 += new EventHandler <SendingRequest2EventArgs>(delegate(object sender, SendingRequest2EventArgs e)
            {
                var authenticationHeader = OAuthHelper.GetAuthenticationHeader(useWebAppAuthentication: true);
                e.RequestMessage.SetHeader(OAuthHelper.OAuthHeader, authenticationHeader);
            });


            StreamWriter stream = File.CreateText(filePath);

            stream.WriteLine("Entity,TestType, Workload, Duration");
            stream.Flush();
            stream.Close();

            Console.WriteLine("Warming....");
            context.SalesOrderHeadersV2.FirstOrDefault();
            context.SalesOrderHeadersV2EntityDSReadOnly.FirstOrDefault();
            context.SalesOrderHeadersV2EntityOnlySalesTable.FirstOrDefault();
            context.SalesOrderHeadersV2EntityReadOnly.FirstOrDefault();
            context.SalesOrderHeadersV2EntityReadOnlyNoGlobalization.FirstOrDefault();
            context.SalesOrderHeaderV2ExistAddrReadOnlys.FirstOrDefault();
            context.AAXSalesTables.FirstOrDefault();
            context.AAXSalesTablesReadOnly.FirstOrDefault();


            Console.WriteLine("Starting...");

            SalesValues values;

            #region SalesOrderHeaderV2 Tests
            Console.WriteLine("Starting SalesOrderHeaderV2 Tests");
            //random read
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //fixed read
            values = SalesOrderHeaderV2Tester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2Tester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //random 10 reads
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2Tester.getCustomerAccountsWithMoreThan10Orders();
                SalesOrderHeaderV2Tester.runReads(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }

            //fixed 10 read
            values = SalesOrderHeaderV2Tester.getCustomerAccountsWithMoreThan10Orders();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2Tester.runReads(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }
            #endregion

            #region SalesOrderheaderV2ReadOnly Tests
            Console.WriteLine("Starting SalesOrderheaderV2ReadOnly Tests");
            //random read
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2EntityReadOnlyTester.getRandomCombination();
                SalesOrderHeaderV2EntityReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //fixed read
            values = SalesOrderHeaderV2EntityReadOnlyTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2EntityReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //random 10 reads
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2EntityReadOnlyTester.getCustomerAccountsWithMoreThan10Orders();
                SalesOrderHeaderV2EntityReadOnlyTester.runReads(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }

            //fixed 10 read
            values = SalesOrderHeaderV2EntityReadOnlyTester.getCustomerAccountsWithMoreThan10Orders();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2EntityReadOnlyTester.runReads(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }
            #endregion

            #region SalesOrderHeaderV2EntityReadOnlyNoGlobalization Tests
            Console.WriteLine("Starting SalesOrderHeaderV2EntityReadOnlyNoGlobalization Tests");
            //random read
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2EntityReadOnlyNoGlobalizationTester.getRandomCombination();
                SalesOrderHeaderV2EntityReadOnlyNoGlobalizationTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //repetitive read
            values = SalesOrderHeaderV2EntityReadOnlyNoGlobalizationTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2EntityReadOnlyNoGlobalizationTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //random 10 reads
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2EntityReadOnlyNoGlobalizationTester.getCustomerAccountsWithMoreThan10Orders();
                SalesOrderHeaderV2EntityReadOnlyNoGlobalizationTester.runReads(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }

            //fixed 10 read
            values = SalesOrderHeaderV2EntityReadOnlyNoGlobalizationTester.getCustomerAccountsWithMoreThan10Orders();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2EntityReadOnlyNoGlobalizationTester.runReads(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }
            #endregion

            #region SalesOrderHeaderV2EntityOnlySalesTable Tests
            Console.WriteLine("Starting SalesOrderHeaderV2EntityOnlySalesTable Tests");
            //random
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2EntityOnlySalesTableTester.getRandomCombination();
                SalesOrderHeaderV2EntityOnlySalesTableTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //repetitive
            values = SalesOrderHeaderV2EntityOnlySalesTableTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2EntityOnlySalesTableTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //random 10 reads
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2EntityOnlySalesTableTester.getCustomerAccountsWithMoreThan10Orders();
                SalesOrderHeaderV2EntityOnlySalesTableTester.runReads(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }

            //fixed 10 read
            values = SalesOrderHeaderV2EntityOnlySalesTableTester.getCustomerAccountsWithMoreThan10Orders();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2EntityOnlySalesTableTester.runReads(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }
            #endregion

            #region SalesOrderHeaderV2EntityDSReadOnly Tests
            Console.WriteLine("Starting SalesOrderHeaderV2EntityDSReadOnly Tests");
            //random
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2EntityDSReadOnlyTester.getRandomCombination();
                SalesOrderHeaderV2EntityDSReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //repetitive
            values = SalesOrderHeaderV2EntityDSReadOnlyTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2EntityDSReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //random 10 reads
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2EntityDSReadOnlyTester.getCustomerAccountsWithMoreThan10Orders();
                SalesOrderHeaderV2EntityDSReadOnlyTester.runReads(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }

            //fixed 10 read
            values = SalesOrderHeaderV2EntityDSReadOnlyTester.getCustomerAccountsWithMoreThan10Orders();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2EntityDSReadOnlyTester.runReads(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }
            #endregion

            #region AAXSalesTable Tests
            Console.WriteLine("Starting AAXSalesTable Tests");
            //random
            for (int i = 0; i < 100; i++)
            {
                values = AAXSalesTableEntityTester.getRandomCombination();
                AAXSalesTableEntityTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //repetitive
            values = AAXSalesTableEntityTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                AAXSalesTableEntityTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }
            //random 10 reads
            for (int i = 0; i < 100; i++)
            {
                values = AAXSalesTableEntityTester.getCustomerAccountsWithMoreThan10Orders();
                AAXSalesTableEntityTester.runReads(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }

            //fixed 10 read
            values = AAXSalesTableEntityTester.getCustomerAccountsWithMoreThan10Orders();
            for (int i = 0; i < 100; i++)
            {
                AAXSalesTableEntityTester.runReads(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }
            #endregion

            #region AAXSalesTableEntityReadOnly Tests
            Console.WriteLine("Starting AAXSalesTableEntityReadOnly Tests");
            //random
            for (int i = 0; i < 100; i++)
            {
                values = AAXSalesTableEntityReadOnlyTester.getRandomCombination();
                AAXSalesTableEntityReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //repetitive
            values = AAXSalesTableEntityReadOnlyTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                AAXSalesTableEntityReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }
            //random 10 reads
            for (int i = 0; i < 100; i++)
            {
                values = AAXSalesTableEntityReadOnlyTester.getCustomerAccountsWithMoreThan10Orders();
                AAXSalesTableEntityReadOnlyTester.runReads(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }

            //fixed 10 read
            values = AAXSalesTableEntityReadOnlyTester.getCustomerAccountsWithMoreThan10Orders();
            for (int i = 0; i < 100; i++)
            {
                AAXSalesTableEntityReadOnlyTester.runReads(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }
            #endregion

            #region SalesOrderHeaderV2ExistAddrReadOnly Tests
            Console.WriteLine("Starting SalesOrderHeaderV2ExistAddrReadOnly Tests");
            //random
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2ExistAddrReadOnlyTester.getRandomCombination();
                SalesOrderHeaderV2ExistAddrReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //repetitive
            values = SalesOrderHeaderV2ExistAddrReadOnlyTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2ExistAddrReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }
            //random 10 reads
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2ExistAddrReadOnlyTester.getCustomerAccountsWithMoreThan10Orders();
                SalesOrderHeaderV2ExistAddrReadOnlyTester.runReads(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }

            //fixed 10 read
            values = SalesOrderHeaderV2ExistAddrReadOnlyTester.getCustomerAccountsWithMoreThan10Orders();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2ExistAddrReadOnlyTester.runReads(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.CustAccount, 10);
            }
            #endregion

            Console.WriteLine("Complete. Press enter.");
            Console.ReadLine();
        }
        public void RandomNumABC()
        {
            string rNum = OAuthHelper.RandomNumABC(6);

            Assert.IsTrue(rNum.Length == 6);
        }
 public void SetOAuth2Result()
 {
     OAuthHelper.SetOAuth2Result(flag, oAuth2Result);
     Assert.IsTrue(OAuthHelper.OAuth2Results.Count > 0);
 }
Exemplo n.º 19
0
        static void Main(string[] args)
        {
            Uri oDataUri = new Uri(ODataEntityPath, UriKind.Absolute);
            var context  = new Resources(oDataUri);


            context.BuildingRequest += (sender, e) =>
            {
                var uriBuilder = new UriBuilder(e.RequestUri);
                // Requires a reference to System.Web and .NET 4.6.1+
                var paramValues = HttpUtility.ParseQueryString(uriBuilder.Query);
                if (paramValues.GetValues("cross-company") == null)
                {
                    paramValues.Add("cross-company", "true");
                    uriBuilder.Query = paramValues.ToString();
                    e.RequestUri     = uriBuilder.Uri;
                }
            };


            context.SendingRequest2 += new EventHandler <SendingRequest2EventArgs>(delegate(object sender, SendingRequest2EventArgs e)
            {
                var authenticationHeader = OAuthHelper.GetAuthenticationHeader(useWebAppAuthentication: true);
                e.RequestMessage.SetHeader(OAuthHelper.OAuthHeader, authenticationHeader);
            });


            StreamWriter stream = File.CreateText(filePath);

            stream.WriteLine("Entity,TestType, Workload, Duration");
            stream.Flush();
            stream.Close();

            Console.WriteLine("Connected To " + ClientConfiguration.Default.UriString);

            SalesValues values;

            Console.Write("Warming.");
            context.SalesOrderHeadersV2.FirstOrDefault();
            Console.Write(".");
            Console.WriteLine(".");


            #region SalesOrderHeaderV2 Tests
            Console.WriteLine("Starting SalesOrderHeaderV2 Tests");

            int loopCount = 100;

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runReadsWithOrderByAsc(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10WithOrderByAscOnIndex, values.DataAreaId, 10);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runReadsWithOrderByDesc(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Ready10WithOrderByDescOnIndex, values.DataAreaId, 10);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runReadsWithOrderByAscOnRequestedShippingDate(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10WithOrderByAscNotOnIndex, values.DataAreaId, 10);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runReadsWithOrderByDescOnRequestedShippingDate(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10WithOrderByDescNotOnIndex, values.DataAreaId, 10);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runReadsWithOrderByAscOnSalesOrderProcessingStatus(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10WithOrderByAscOnCalculatedField, values.DataAreaId, 10);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runReadsWithOrderByDescOnSalesOrderProcessingStatus(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10WithOrderByDescOnCalculatedField, values.DataAreaId, 10);
            }

            //salesOrderProcessingStat


            #endregion



            Console.WriteLine("Complete. Press enter.");
            Console.ReadLine();
        }
Exemplo n.º 20
0
        protected void cmd_twitter_login_Click(object sender, EventArgs e)
        {
            OAuthHelper oauthhelper = new OAuthHelper();
            string requestToken = oauthhelper.GetRequestToken();

            if (string.IsNullOrEmpty(oauthhelper.oauth_error))
                Response.Redirect(oauthhelper.GetAuthorizeUrl(requestToken));
            else
                Response.Write(oauthhelper.oauth_error);
        }
Exemplo n.º 21
0
 public void UrlEncode_Empty()
 {
     Assert.Equal("", OAuthHelper.UrlEncode(""));
 }
Exemplo n.º 22
0
        public AccountForm(OAuthHelper oauthHelper)
        {
            this.oauthHelper = oauthHelper;

            InitializeComponent();
        }
 private static String getRequestUrl(String requestType)
 {
     return(string.Format("{0}/wc-api/v3/{1}?" + OAuthHelper.getAuthString(consumerKey), websiteUrl, requestType));
 }
Exemplo n.º 24
0
 public string LoginUrl(string returnUrl)
 {
     return(OAuthHelper.GenerateLoginUrl($"http://{Url.Request.Headers.Host}/AuthorizationCallBack/OAuth", returnUrl));
 }
Exemplo n.º 25
0
        static void Main(string[] args)
        {
            Uri oDataUri = new Uri(ODataEntityPath, UriKind.Absolute);
            var context  = new Resources(oDataUri);


            context.BuildingRequest += (sender, e) =>
            {
                var uriBuilder = new UriBuilder(e.RequestUri);
                // Requires a reference to System.Web and .NET 4.6.1
                var paramValues = HttpUtility.ParseQueryString(uriBuilder.Query);
                if (paramValues.GetValues("cross-company") == null)
                {
                    paramValues.Add("cross-company", "true");
                    uriBuilder.Query = paramValues.ToString();
                    e.RequestUri     = uriBuilder.Uri;
                }
            };


            context.SendingRequest2 += new EventHandler <SendingRequest2EventArgs>(delegate(object sender, SendingRequest2EventArgs e)
            {
                var authenticationHeader = OAuthHelper.GetAuthenticationHeader(useWebAppAuthentication: true);
                e.RequestMessage.SetHeader(OAuthHelper.OAuthHeader, authenticationHeader);
            });

            if (File.Exists(filePath))
            {
                // delete file and init a file to write to.
                File.Delete(filePath);
            }

            StreamWriter stream = File.CreateText(filePath);

            stream.WriteLine("Entity,TestType, Workload, Duration");
            stream.Flush();
            stream.Close();

            Console.WriteLine("Start.");

            SalesValues values;

            SalesOrderTester.getRandomSet(10);

            #region SalesOrderHeaderV2 Tests
            //random read
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //fixed read
            values = SalesOrderHeaderV2Tester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2Tester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //random 10 reads


            //repetitive 10 reads
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2Tester.runReads(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read10, SalesOrderHeaderV2Tester.getRandomCombination().DataAreaId, "", 10);
            }


            #endregion


            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2EntityReadOnlyTester.getRandomCombination();
                SalesOrderHeaderV2EntityReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            values = SalesOrderHeaderV2EntityReadOnlyTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2EntityReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //random
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2EntityReadOnlyTester.getRandomCombination();
                SalesOrderHeaderV2EntityReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //repetitive
            values = SalesOrderHeaderV2EntityReadOnlyTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2EntityReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //done
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2EntityReadOnlyNoGlobalizationTester.getRandomCombination();
                SalesOrderHeaderV2EntityReadOnlyNoGlobalizationTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
                //stream.WriteLine("SalesOrderHeaderV2EntityReadOnlyNoGlobalization," + sw.Elapsed.TotalMilliseconds.ToString());
            }

            //repetitive
            values = SalesOrderHeaderV2EntityReadOnlyNoGlobalizationTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2EntityReadOnlyNoGlobalizationTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }



            //random
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2EntityOnlySalesTableTester.getRandomCombination();
                SalesOrderHeaderV2EntityOnlySalesTableTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //repetitive
            values = SalesOrderHeaderV2EntityOnlySalesTableTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2EntityOnlySalesTableTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }


            //random
            for (int i = 0; i < 100; i++)
            {
                values = SalesOrderHeaderV2EntityDSReadOnlyTester.getRandomCombination();
                SalesOrderHeaderV2EntityDSReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //repetitive
            values = SalesOrderHeaderV2EntityDSReadOnlyTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                SalesOrderHeaderV2EntityDSReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //random
            for (int i = 0; i < 100; i++)
            {
                values = AAXSalesTableEntityTester.getRandomCombination();
                AAXSalesTableEntityTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //repetitive
            values = AAXSalesTableEntityTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                AAXSalesTableEntityTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //random
            for (int i = 0; i < 100; i++)
            {
                values = AAXSalesTableEntityReadOnlyTester.getRandomCombination();
                AAXSalesTableEntityReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            //repetitive
            values = AAXSalesTableEntityReadOnlyTester.getRandomCombination();
            for (int i = 0; i < 100; i++)
            {
                AAXSalesTableEntityReadOnlyTester.runOneRead(context, filePath, SalesOrderTester.TestType.Repetitive, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            Console.WriteLine("Complete. Press enter.");
            Console.ReadLine();
        }
Exemplo n.º 26
0
        static void Main(string[] args)
        {
            Uri oDataUri = new Uri(ODataEntityPath, UriKind.Absolute);
            var context  = new Resources(oDataUri);


            context.BuildingRequest += (sender, e) =>
            {
                var uriBuilder = new UriBuilder(e.RequestUri);
                // Requires a reference to System.Web and .NET 4.6.1+
                var paramValues = HttpUtility.ParseQueryString(uriBuilder.Query);
                if (paramValues.GetValues("cross-company") == null)
                {
                    paramValues.Add("cross-company", "true");
                    uriBuilder.Query = paramValues.ToString();
                    e.RequestUri     = uriBuilder.Uri;
                }
            };


            context.SendingRequest2 += new EventHandler <SendingRequest2EventArgs>(delegate(object sender, SendingRequest2EventArgs e)
            {
                var authenticationHeader = OAuthHelper.GetAuthenticationHeader(useWebAppAuthentication: true);
                e.RequestMessage.SetHeader(OAuthHelper.OAuthHeader, authenticationHeader);
            });

            StreamWriter stream = File.CreateText(filePath);

            stream.WriteLine("Entity, TestType, Workload, Duration");
            stream.Flush();
            stream.Close();

            Console.WriteLine("Connected To " + ClientConfiguration.Default.UriString);

            SalesValues values;

            int loopCount = 100;

            Stopwatch sw = new Stopwatch();

            context.SalesOrderHeadersV2.FirstOrDefault();
            context.SalesOrderLines.FirstOrDefault();

            sw.Start();

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombinationWithAtLeast1Line();
                SalesOrderLineV2Tester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombinationWithAtLeast1Line();
                SalesOrderLineV2Tester.runOneExpandedRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadExpanded, values.SalesId, values.DataAreaId);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombinationWithAtLeast1Line();
                SalesOrderLineV2Tester.runOneCombinedRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadCombined, values.SalesId, values.DataAreaId);
            }

            Console.WriteLine("Complete. Press enter.");
            Console.ReadLine();
        }
Exemplo n.º 27
0
        private Tuple <HttpWebRequest, string> PrepareOAuthRequest(string oauthSource, string serverRSAExponent, string serverRSAModulus, string challenge)
        {
#if !SILVERLIGHT
            var authRequest = (HttpWebRequest)WebRequest.Create(oauthSource);
#else
            var authRequest = (HttpWebRequest)WebRequestCreator.ClientHttp.Create(new Uri(oauthSource));
#endif
            authRequest.Headers["grant_type"] = "client_credentials";
            authRequest.Accept = "application/json;charset=UTF-8";
            authRequest.Method = "POST";

            if (!string.IsNullOrEmpty(serverRSAExponent) && !string.IsNullOrEmpty(serverRSAModulus) && !string.IsNullOrEmpty(challenge))
            {
                var parameters = Tuple.Create(OAuthHelper.ParseBytes(serverRSAExponent), OAuthHelper.ParseBytes(serverRSAModulus));

                var apiKeyParts = apiKey.Split(new[] { '/' }, StringSplitOptions.None);

                if (apiKeyParts.Length > 2)
                {
                    apiKeyParts[1] = string.Join("/", apiKeyParts.Skip(1));
                }

                if (apiKeyParts.Length < 2)
                {
                    throw new InvalidOperationException("Invalid API key");
                }

                var apiKeyName = apiKeyParts[0].Trim();
                var apiSecret  = apiKeyParts[1].Trim();


                var data = OAuthHelper.DictionaryToString(new Dictionary <string, string>
                {
                    { OAuthHelper.Keys.RSAExponent, serverRSAExponent },
                    { OAuthHelper.Keys.RSAModulus, serverRSAModulus },
                    {
                        OAuthHelper.Keys.EncryptedData,
                        OAuthHelper.EncryptAssymetric(parameters, OAuthHelper.DictionaryToString(new Dictionary <string, string>
                        {
                            { OAuthHelper.Keys.APIKeyName, apiKeyName },
                            { OAuthHelper.Keys.Challenge, challenge },
                            {
                                OAuthHelper.Keys.Response,
                                OAuthHelper.Hash(string.Format(OAuthHelper.Keys.ResponseFormat, challenge, apiSecret))
                            }
                        }))
                    }
                });

                return(Tuple.Create(authRequest, data));
            }
            authRequest.ContentLength = 0;
            return(Tuple.Create(authRequest, (string)null));
        }
Exemplo n.º 28
0
        // TODO: Delete this, and use the async one.
        public override Action <HttpWebRequest> DoOAuthRequest(string oauthSource, string apiKey)
        {
            string serverRSAExponent = null;
            string serverRSAModulus  = null;
            string challenge         = null;

            // Note that at two tries will be needed in the normal case.
            // The first try will get back a challenge,
            // the second try will try authentication. If something goes wrong server-side though
            // (e.g. the server was just rebooted or the challenge timed out for some reason), we
            // might get a new challenge back, so we try a third time just in case.
            int tries = 0;

            while (true)
            {
                tries++;
                var authRequestTuple = PrepareOAuthRequest(oauthSource, serverRSAExponent, serverRSAModulus, challenge, apiKey);
                var authRequest      = authRequestTuple.Item1;
                if (authRequestTuple.Item2 != null)
                {
                    using (var stream = authRequest.GetRequestStream())
                        using (var writer = new StreamWriter(stream))
                        {
                            writer.Write(authRequestTuple.Item2);
                        }
                }

                try
                {
                    using (var authResponse = authRequest.GetResponse())
                        using (var stream = authResponse.GetResponseStreamWithHttpDecompression())
                            using (var reader = new StreamReader(stream))
                            {
                                var currentOauthToken = reader.ReadToEnd();
                                CurrentOauthToken           = currentOauthToken;
                                CurrentOauthTokenWithBearer = "Bearer " + currentOauthToken;

                                return((Action <HttpWebRequest>)(request => SetHeader(request.Headers, "Authorization", CurrentOauthTokenWithBearer)));
                            }
                }
                catch (WebException ex)
                {
                    if (tries > 2)
                    {
                        // We've already tried three times and failed
                        throw;
                    }

                    var authResponse = ex.Response as HttpWebResponse;
                    if (authResponse == null || authResponse.StatusCode != HttpStatusCode.PreconditionFailed)
                    {
                        throw;
                    }

                    var header = authResponse.Headers[HttpResponseHeader.WwwAuthenticate];
                    if (string.IsNullOrEmpty(header) || !header.StartsWith(OAuthHelper.Keys.WWWAuthenticateHeaderKey))
                    {
                        throw;
                    }

                    authResponse.Close();

                    var challengeDictionary = OAuthHelper.ParseDictionary(header.Substring(OAuthHelper.Keys.WWWAuthenticateHeaderKey.Length).Trim());
                    serverRSAExponent = challengeDictionary.GetOrDefault(OAuthHelper.Keys.RSAExponent);
                    serverRSAModulus  = challengeDictionary.GetOrDefault(OAuthHelper.Keys.RSAModulus);
                    challenge         = challengeDictionary.GetOrDefault(OAuthHelper.Keys.Challenge);

                    if (string.IsNullOrEmpty(serverRSAExponent) || string.IsNullOrEmpty(serverRSAModulus) || string.IsNullOrEmpty(challenge))
                    {
                        throw new InvalidOperationException("Invalid response from server, could not parse raven authentication information: " + header);
                    }
                }
            }
        }
Exemplo n.º 29
0

        
        /// <summary>
        /// Gets a signed Uri for the specified endpoint with the specified parameters appended to the query string.
        /// This Uri can be used with REST APIs that use OAuth.
        /// </summary>
        /// <param name="url">The url that will have the parameters appended to its query string</param>
        /// <param name="key">OAuth key required by the external system</param>
        /// <param name="secret">OAuth secret required by the external system</param>
        /// <param name="parameters">The keys and values that are appended to the query string</param>
        /// <returns>A signed Uri for the endpoint with the parameters appended to the query string</returns>
        protected virtual Uri GetSignedUri(string url, string key, string secret, IDictionary<string, string> parameters)
        {
            var uri = GetUri(url, parameters);
            string nurl, nreq;
            var oAuth = new OAuthHelper();

            var nounce = oAuth.GenerateNonce();
            var timestamp = oAuth.GenerateTimeStamp();

            var signatureUrl = oAuth.GenerateSignature(
                url: uri,
                consumerKey: key,
                consumerSecret: secret,
                token: string.Empty,
                tokenSecret: string.Empty,
                httpMethod: "GET",
                timeStamp: timestamp,
                nonce: nounce,
                signatureType: OAuthHelper.SignatureTypes.HMACSHA1,
                normalizedUrl: out nurl,
                normalizedRequestParameters: out nreq);

            signatureUrl = HttpUtility.UrlEncode(signatureUrl);

            var parameters2 = new Dictionary<string, string>();
            parameters2.Add("oauth_consumer_key", key);
            parameters2.Add("oauth_nonce", nounce);
            parameters2.Add("oauth_timestamp", timestamp);
            parameters2.Add("oauth_signature_method", "HMAC-SHA1");
            parameters2.Add("oauth_version", "1.0");
            parameters2.Add("oauth_signature", signatureUrl);
            var uri2 = GetUri(uri.ToString(), parameters2, true);
            return uri2;
        }
Exemplo n.º 31
0
        }                                     // Constructor needed for dynamic loading to find it

        protected MicrosoftGraphBackend(string url, Dictionary <string, string> options)
        {
            string authid;

            options.TryGetValue(AUTHID_OPTION, out authid);
            if (string.IsNullOrEmpty(authid))
            {
                throw new UserInformationException(Strings.MicrosoftGraph.MissingAuthId(OAuthHelper.OAUTH_LOGIN_URL(this.ProtocolKey)), "MicrosoftGraphBackendMissingAuthId");
            }

            string fragmentSizeStr;

            if (options.TryGetValue(UPLOAD_SESSION_FRAGMENT_SIZE_OPTION, out fragmentSizeStr) && int.TryParse(fragmentSizeStr, out this.fragmentSize))
            {
                // Make sure the fragment size is a multiple of the desired multiple size.
                // If it isn't, we round down to the nearest multiple below it.
                this.fragmentSize = (this.fragmentSize / UPLOAD_SESSION_FRAGMENT_MULTIPLE_SIZE) * UPLOAD_SESSION_FRAGMENT_MULTIPLE_SIZE;

                // Make sure the fragment size isn't larger than the maximum, or smaller than the minimum
                this.fragmentSize = Math.Max(Math.Min(this.fragmentSize, UPLOAD_SESSION_FRAGMENT_MAX_SIZE), UPLOAD_SESSION_FRAGMENT_MULTIPLE_SIZE);
            }
            else
            {
                this.fragmentSize = UPLOAD_SESSION_FRAGMENT_DEFAULT_SIZE;
            }

            string fragmentRetryCountStr;

            if (!(options.TryGetValue(UPLOAD_SESSION_FRAGMENT_RETRY_COUNT_OPTION, out fragmentRetryCountStr) && int.TryParse(fragmentRetryCountStr, out this.fragmentRetryCount)))
            {
                this.fragmentRetryCount = UPLOAD_SESSION_FRAGMENT_DEFAULT_RETRY_COUNT;
            }

            string fragmentRetryDelayStr;

            if (!(options.TryGetValue(UPLOAD_SESSION_FRAGMENT_RETRY_DELAY_OPTION, out fragmentRetryDelayStr) && int.TryParse(fragmentRetryDelayStr, out this.fragmentRetryDelay)))
            {
                this.fragmentRetryDelay = UPLOAD_SESSION_FRAGMENT_DEFAULT_RETRY_DELAY;
            }

            this.m_client             = new OAuthHttpClient(authid, this.ProtocolKey);
            this.m_client.BaseAddress = new System.Uri(BASE_ADDRESS);

            // Extract out the path to the backup root folder from the given URI
            this.m_path = NormalizeSlashes(this.GetRootPathFromUrl(url));
        }
 public void GetFolderListTest()
 {
     Login l = new Login();
     WebBrowser wb = l.GetBrowserElement();
     wb.DocumentCompleted += delegate (Object sender, WebBrowserDocumentCompletedEventArgs args){
         OAuthHelper h = new OAuthHelper(wb); // TODO: Passenden Wert initialisieren
         InstapaperConnector target = new InstapaperConnector(h); // TODO: Passenden Wert initialisieren
         User user = new User(target);
         target.GetFolderList(user, delegate(IAsyncResult result)
         {
             // Should return an empty List in case of zero folders
             Console.WriteLine(user.Folders);
             if (user.Folders.Capacity > 0)
                 foreach (Folder f in user.Folders)
                     Assert.IsNotNull(f);
         });
     };
 }
Exemplo n.º 33
0
        static void Main(string[] args)
        {
            Uri oDataUri = new Uri(ODataEntityPath, UriKind.Absolute);
            var context  = new Resources(oDataUri);


            context.BuildingRequest += (sender, e) =>
            {
                var uriBuilder = new UriBuilder(e.RequestUri);
                // Requires a reference to System.Web and .NET 4.6.1+
                var paramValues = HttpUtility.ParseQueryString(uriBuilder.Query);
                if (paramValues.GetValues("cross-company") == null)
                {
                    paramValues.Add("cross-company", "true");
                    uriBuilder.Query = paramValues.ToString();
                    e.RequestUri     = uriBuilder.Uri;
                }
            };


            context.SendingRequest2 += new EventHandler <SendingRequest2EventArgs>(delegate(object sender, SendingRequest2EventArgs e)
            {
                var authenticationHeader = OAuthHelper.GetAuthenticationHeader(useWebAppAuthentication: true);
                e.RequestMessage.SetHeader(OAuthHelper.OAuthHeader, authenticationHeader);
            });


            StreamWriter stream = File.CreateText(filePath);

            stream.WriteLine("Entity,TestType, Workload, Duration");
            stream.Flush();
            stream.Close();

            Console.WriteLine("Connected To " + ClientConfiguration.Default.UriString);

            Console.Write("Warming.");

            context.SalesOrderHeadersV2.FirstOrDefault();
            Console.Write(".");
            Console.WriteLine(".");


            Console.WriteLine("Starting...");

            SalesValues values;

            #region SalesOrderHeaderV2 Tests
            Console.WriteLine("Starting SalesOrderHeaderV2 Tests");

            int loopCount = 100;

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
            }


            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomInventSite();
                SalesOrderHeaderV2Tester.runOneReadOnInventSiteId(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadInventSite, values.InventSiteId, values.DataAreaId);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomInventLocation();
                SalesOrderHeaderV2Tester.runOneReadOnInventLocationId(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadInventLocation, values.InventLocationid, values.DataAreaId);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomEmail();
                SalesOrderHeaderV2Tester.runOneReadOnSalesEmail(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadEmail, values.Email, values.DataAreaId);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomSalesName();
                SalesOrderHeaderV2Tester.runOneReadOnSalesName(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadSalesName, values.SalesName, values.DataAreaId);
            }

            //--
            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runReads(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10, values.DataAreaId, values.SalesId, 10);
            }


            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomInventSite();
                SalesOrderHeaderV2Tester.runReadsOnInventSiteId(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10InventSite, values.DataAreaId, values.InventSiteId, 10);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomInventLocation();
                SalesOrderHeaderV2Tester.runReadsOnInventLocationId(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10InventLocation, values.DataAreaId, values.InventLocationid, 10);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomEmail();
                SalesOrderHeaderV2Tester.runReadsOnSalesEmail(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10Email, values.DataAreaId, values.Email, 10);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomSalesName();
                SalesOrderHeaderV2Tester.runReadsOnSalesName(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read10SalesName, values.DataAreaId, values.SalesName, 10);
            }

            #endregion

            //but is index over-specification an issue?
            //ReadCustIdx, ReadStatusCustAccidx, ReadSalesTypeIdx, ReadCustCreatedDateIdx,
            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runOneCustIdxRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadCustIdx, values.CustAccount, values.SalesId, values.PurchOrderFormNum, values.DataAreaId);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runOneStatusCustAccountIdxRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadStatusCustAccidx, values.SalesStatus, values.CustAccount, values.DataAreaId);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runOneSalesTypeIdxRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadSalesTypeIdx, values.SalesId, values.DataAreaId);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomCombination();
                SalesOrderHeaderV2Tester.runOneCustCreatedDateIdxRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadCustCreatedDateIdx, values.CustAccount, values.CreatedDateTime, values.DataAreaId);
            }

            for (int i = 0; i < loopCount; i++)
            {
                values = SalesOrderHeaderV2Tester.getRandomGarbageCombination();
                SalesOrderHeaderV2Tester.runOneGarbageRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadGarbage, values);
            }
            //


            Console.WriteLine("Complete. Press enter.");
            Console.ReadLine();
        }
Exemplo n.º 34
0
        public async Task <HttpResponseMessage> ApiKeyPost()
        {
            if (InnerRequest.Content.Headers.ContentLength > MaxOAuthContentLength)
            {
                return
                    (GetMessageWithObject(
                         new
                {
                    error = "invalid_request",
                    error_description = "Content length should not be over " + MaxOAuthContentLength + " bytes"
                },
                         HttpStatusCode.BadRequest));
            }

            if (InnerRequest.Content.Headers.ContentLength == 0)
            {
                return(RespondWithChallenge());
            }

            //using (var reader = new StreamReader(context.Request.InputStream))
            //	requestContents = reader.ReadToEnd();
            var requestContents = await ReadStringAsync().ConfigureAwait(false);

            var requestContentsDictionary = OAuthHelper.ParseDictionary(requestContents);
            var rsaExponent = requestContentsDictionary.GetOrDefault(OAuthHelper.Keys.RSAExponent);
            var rsaModulus  = requestContentsDictionary.GetOrDefault(OAuthHelper.Keys.RSAModulus);

            if (rsaExponent == null || rsaModulus == null ||
                !rsaExponent.SequenceEqual(OAuthServerHelper.RSAExponent) || !rsaModulus.SequenceEqual(OAuthServerHelper.RSAModulus))
            {
                return(RespondWithChallenge());
            }

            var encryptedData = requestContentsDictionary.GetOrDefault(OAuthHelper.Keys.EncryptedData);

            if (string.IsNullOrEmpty(encryptedData))
            {
                return(RespondWithChallenge());
            }

            var challengeDictionary = OAuthHelper.ParseDictionary(OAuthServerHelper.DecryptAsymmetric(encryptedData));
            var apiKeyName          = challengeDictionary.GetOrDefault(OAuthHelper.Keys.APIKeyName);
            var challenge           = challengeDictionary.GetOrDefault(OAuthHelper.Keys.Challenge);
            var response            = challengeDictionary.GetOrDefault(OAuthHelper.Keys.Response);

            if (string.IsNullOrEmpty(apiKeyName) || string.IsNullOrEmpty(challenge) || string.IsNullOrEmpty(response))
            {
                return(RespondWithChallenge());
            }

            var challengeData = OAuthHelper.ParseDictionary(OAuthServerHelper.DecryptSymmetric(challenge));
            var timestampStr  = challengeData.GetOrDefault(OAuthHelper.Keys.ChallengeTimestamp);

            if (string.IsNullOrEmpty(timestampStr))
            {
                return(RespondWithChallenge());
            }

            var challengeTimestamp = OAuthServerHelper.ParseDateTime(timestampStr);

            if (challengeTimestamp + MaxChallengeAge < SystemTime.UtcNow || challengeTimestamp > SystemTime.UtcNow)
            {
                // The challenge is either old or from the future
                return(RespondWithChallenge());
            }

            var apiKeyTuple = GetApiKeySecret(apiKeyName);

            if (apiKeyTuple == null)
            {
                return(GetMessageWithObject(new { error = "unauthorized_client", error_description = "Unknown API Key" },
                                            HttpStatusCode.Unauthorized));
            }

            var apiSecret = apiKeyTuple.Item1;

            if (string.IsNullOrEmpty(apiKeyName))
            {
                return(GetMessageWithObject(new { error = "unauthorized_client", error_description = "Invalid API Key" },
                                            HttpStatusCode.Unauthorized));
            }

            var expectedResponse = OAuthHelper.Hash(string.Format(OAuthHelper.Keys.ResponseFormat, challenge, apiSecret));

            if (response != expectedResponse)
            {
                return(GetMessageWithObject(new { error = "unauthorized_client", error_description = "Invalid challenge response" },
                                            HttpStatusCode.Unauthorized));
            }

            var token = apiKeyTuple.Item2;

            return(GetMessageWithObject(token));
        }
Exemplo n.º 35
0
        static void Main(string[] args)
        {
            Uri oDataUri = new Uri(ODataEntityPath, UriKind.Absolute);
            var context  = new Resources(oDataUri);


            context.BuildingRequest += (sender, e) =>
            {
                var uriBuilder = new UriBuilder(e.RequestUri);
                // Requires a reference to System.Web and .NET 4.6.1+
                var paramValues = HttpUtility.ParseQueryString(uriBuilder.Query);
                if (paramValues.GetValues("cross-company") == null)
                {
                    paramValues.Add("cross-company", "true");
                    uriBuilder.Query = paramValues.ToString();
                    e.RequestUri     = uriBuilder.Uri;
                }
            };


            context.SendingRequest2 += new EventHandler <SendingRequest2EventArgs>(delegate(object sender, SendingRequest2EventArgs e)
            {
                var authenticationHeader = OAuthHelper.GetAuthenticationHeader(useWebAppAuthentication: true);
                e.RequestMessage.SetHeader(OAuthHelper.OAuthHeader, authenticationHeader);
            });

            SalesValues values;

            StreamWriter stream = File.CreateText(filePath);

            stream.WriteLine("Entity, TestType, Workload, Duration");
            stream.Flush();
            stream.Close();

            Console.WriteLine("Connected To " + ClientConfiguration.Default.UriString);

            /*
             * Stopwatch sw = new Stopwatch();
             *
             * context.SalesOrderHeadersV2.FirstOrDefault();
             * context.SalesOrderLines.FirstOrDefault();
             * context.SalesOrderHeadersV2EntityOnlySalesTablePostLoad.FirstOrDefault();
             * context.SalesOrderHeadersV2EntityOnlySalesTablePostLoadExtended.FirstOrDefault();
             *
             * SalesOrderLineV2Tester.runGetAllPagesSkipTake(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadAllPagesSkipTake);
             *
             * SalesOrderLineV2Tester.runGetAllPages(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadAllPagesQuery);
             *
             *
             * for (int i = 0; i < 100; i++)
             * {
             *  values = SalesOrderHeaderV2EntityOnlySalesTableTester.getRandomCombination();
             *  SalesOrderHeaderV2EntityOnlySalesTableTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.Read, values.SalesId, values.DataAreaId);
             * }
             *
             *
             * for (int i = 0; i < 100; i++)
             * {
             *  values = SalesOrderHeaderV2EntityOnlySalesTablePostLoadTester.getRandomCombination();
             *  SalesOrderHeaderV2EntityOnlySalesTablePostLoadTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadPostLoad, values.SalesId, values.DataAreaId);
             * }
             *
             *
             * for (int i = 0; i < 100; i++)
             * {
             *  values = SalesOrderHeaderV2EntityOnlySalesTablePostLoadExtendedTester.getRandomCombination();
             *  SalesOrderHeaderV2EntityOnlySalesTablePostLoadExtendedTester.runOneRead(context, filePath, SalesOrderTester.TestType.Random, SalesOrderTester.TestWorkload.ReadPostLoadExtended, values.SalesId, values.DataAreaId);
             * }
             *
             */

            //int count = context.AAXTables.countRecordsStatic().GetValue();

            //Thread.Sleep(10);

            var x = context.AAXTables.FirstOrDefault();

            System.Threading.Thread.Sleep(1000);


            int count = x.countRecordsInstance().GetValue();

            /*
             * context.SalesOrderHeadersV2EntityOnlySalesTable.Where(x => x.dataAreaId == DataAreaId && x.OrderingCustomerAccountNumber == customerAccount)
             *                                          .Select(x => new { x.SalesOrderNumber, x.OrderingCustomerAccountNumber, x.InvoiceCustomerAccountNumber, x.SalesOrderStatus, x.dataAreaId })
             *                                          .Take(count)
             *                                          .ToList();
             */

            Console.WriteLine("Complete. Press enter.");
            Console.ReadLine();
        }
Exemplo n.º 36
0
        private string GetDisqusCommentsScript()
        {
            var sb = new StringBuilder(50);
            FeatureController ctlModule = new FeatureController();

            AppendToStringBuilder(ref sb, "<div id=\"disqus_thread\"></div> ");
            AppendToStringBuilder(ref sb, "<script type=\"text/javascript\" language=\"javascript\"> ");

            // generate SSO stub for Disqus
            if (DisqusSsoEnabled && !string.IsNullOrEmpty(DisqusSsoApiKey))
            {
                //AppendToStringBuilder(ref sb, "<script type=\"text/javascript\" language=\"javascript\"> ");
                AppendToStringBuilder(ref sb, "var disqus_config = function() { ");

                OAuthHelper auth = new OAuthHelper();
                string strMessage = GetSsoMessage();
                string strHmac = GetSsoHmac(strMessage, auth.GenerateTimeStamp());
                string strPayload = string.Format("this.page.remote_auth_s3 = '{0} {1} {2}'; ", strMessage, strHmac, auth.GenerateTimeStamp());

                AppendToStringBuilder(ref sb, strPayload);

                string strApiKey = string.Format("this.page.api_key = '{0}'; ", DisqusSsoApiKey);
                AppendToStringBuilder(ref sb, strApiKey);

                AppendToStringBuilder(ref sb, "}; ");
                //AppendToStringBuilder(ref sb, "</script> ");
            }

            //sb.Append("/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */");
            if (DisqusDeveloperMode == true)
            {
                AppendToStringBuilder(ref sb, "var disqus_developer = 1; ");
            }
            else
            {
                AppendToStringBuilder(ref sb, "var disqus_developer = 0; ");
            }
            string strShortName = string.Format("var disqus_shortname = '{0}'; ", DisqusApplicationName);
            AppendToStringBuilder(ref sb, strShortName);

            //sb.Append("// The following are highly recommended additional parameters. Remove the slashes in front to use.");
            // need to parse for isolated views in DNN and add them to this identifier
            string strIdentifier = string.Format("var disqus_identifier = '{0}'; ", ctlModule.CreateUniqueIdentifier(TabId, TabModuleId, PortalSettings.GUID, Request.RawUrl));
            AppendToStringBuilder(ref sb, strIdentifier);
            AppendToStringBuilder(ref sb, "var disqus_url = document.URL; ");

            //sb.Append("/* * * DON'T EDIT BELOW THIS LINE * * */");
            AppendToStringBuilder(ref sb, "(function() { ");
            AppendToStringBuilder(ref sb, "var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; ");
            AppendToStringBuilder(ref sb, "dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js'; ");
            AppendToStringBuilder(ref sb, "(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); ");
            AppendToStringBuilder(ref sb, "})();");
            AppendToStringBuilder(ref sb, "</script>");
            AppendToStringBuilder(ref sb, "<noscript>Please enable JavaScript to view the <a href=\"http://disqus.com/?ref_noscript\">comments powered by Disqus.</a></noscript>");
            AppendToStringBuilder(ref sb, "<!--<a href=\"http://disqus.com\" class=\"dsq-brlink\">blog comments powered by <span class=\"logo-disqus\">Disqus</span></a>-->");

            return sb.ToString();
        }
Exemplo n.º 37
0
 public InstapaperConnector(OAuthHelper h)
 {
     this.helper = h;
 }
Exemplo n.º 38
0
            public string token
            {
                get; set;
            }
Exemplo n.º 39
0
        /// <summary>
        /// Helper method that performs a chunked upload, and queries for http status after each chunk
        /// </summary>
        /// <returns>The response item</returns>
        /// <param name="oauth">The Oauth instance</param>
        /// <param name="uploaduri">The resumeable uploaduri</param>
        /// <param name="stream">The stream with data to upload.</param>
        /// <typeparam name="T">The type of data in the response.</typeparam>
        private static T ChunkedUpload <T>(OAuthHelper oauth, string uploaduri, System.IO.Stream stream)
            where T : class
        {
            var queryRange = false;
            var retries    = 0;
            var offset     = 0L;
            var buffer     = new byte[Library.Utility.Utility.DEFAULT_BUFFER_SIZE];

            // Repeatedly try uploading until all retries are done
            while (true)
            {
                try
                {
                    if (queryRange)
                    {
                        T re;
                        offset     = GoogleCommon.QueryUploadRange(oauth, uploaduri, stream.Length, out re);
                        queryRange = false;

                        if (re != null)
                        {
                            return(re);
                        }
                    }

                    //Seek into the right place
                    if (stream.Position != offset)
                    {
                        stream.Position = offset;
                    }

                    var req = oauth.CreateRequest(uploaduri);
                    req.Method      = "PUT";
                    req.ContentType = "application/octet-stream";

                    var chunkSize = Math.Min(UPLOAD_CHUNK_SIZE, stream.Length - offset);

                    req.ContentLength            = chunkSize;
                    req.Headers["Content-Range"] = string.Format("bytes {0}-{1}/{2}", offset, offset + chunkSize - 1, stream.Length);

                    // Upload the remaining data
                    var areq = new AsyncHttpRequest(req);
                    using (var rs = areq.GetRequestStream())
                    {
                        var remaining = chunkSize;
                        while (remaining > 0)
                        {
                            var n = stream.Read(buffer, 0, (int)Math.Min(remaining, Library.Utility.Utility.DEFAULT_BUFFER_SIZE));
                            rs.Write(buffer, 0, n);
                            remaining -= n;
                        }
                    }

                    // Check the response
                    using (var resp = oauth.GetResponseWithoutException(areq))
                    {
                        var code = (int)resp.StatusCode;

                        if (code == 308 && resp.Headers["Range"] != null)
                        {
                            offset  = long.Parse(resp.Headers["Range"].Split(new char[] { '-' })[1]) + 1;
                            retries = 0;
                        }
                        else if (code >= 200 && code <= 299)
                        {
                            offset += chunkSize;
                            if (offset != stream.Length)
                            {
                                throw new Exception(string.Format("Upload succeeded prematurely. Uploaded: {0}, total size: {1}", offset, stream.Length));
                            }

                            //Verify that the response is also valid
                            var res = oauth.ReadJSONResponse <T>(resp);
                            if (res == null)
                            {
                                throw new Exception(string.Format("Upload succeeded, but no data was returned, status code: {0}", code));
                            }

                            return(res);
                        }
                        else
                        {
                            throw new WebException(string.Format("Unexpected status code: {0}", code), null, WebExceptionStatus.ServerProtocolViolation, resp);
                        }
                    }
                }
                catch (Exception ex)
                {
                    var retry = false;

                    // If we get a 5xx error, or some network issue, we retry
                    if (ex is WebException && ((WebException)ex).Response is HttpWebResponse)
                    {
                        var code = (int)((HttpWebResponse)((WebException)ex).Response).StatusCode;
                        retry = code >= 500 && code <= 599;
                    }
                    else if (ex is System.Net.Sockets.SocketException || ex is System.IO.IOException || ex.InnerException is System.Net.Sockets.SocketException || ex.InnerException is System.IO.IOException)
                    {
                        retry = true;
                    }

                    // Retry with exponential backoff
                    if (retry && retries < 5)
                    {
                        System.Threading.Thread.Sleep(TimeSpan.FromSeconds(Math.Pow(2, retries)));
                        retries++;

                        // Ask server where we left off
                        queryRange = true;
                    }
                    else
                    {
                        throw;
                    }
                }
            }
        }
        private List<Contact> Friends(string friendUserIDs, Token token)
        {
            string lookupUrl = "http://api.twitter.com/1/users/lookup.json?user_id=" + friendUserIDs;
            OAuthHelper helper = new OAuthHelper();
            string friendsData = "";
            try
            {
                Stream responseStream = AuthenticationStrategy.ExecuteFeed(lookupUrl, this, token, TRANSPORT_METHOD.GET).GetResponseStream();
                friendsData = new StreamReader(responseStream).ReadToEnd();
            }
            catch { throw; }

            List<Contact> friends = new List<Contact>();

            try
            {
                JArray j = JArray.Parse(friendsData);
                j.ToList().ForEach(f =>
                {
                    friends.Add(
                      new Contact()
                      {
                          Name = (string)f["name"],
                          ID = (string)f["id_str"],
                          ProfileURL = "http://twitter.com/#!/" + (string)f["screen_name"]
                      });

                });
            }
            catch
            {
                throw;
            }
            return friends.ToList<Contact>();

        }
Exemplo n.º 41
0
        public async Task convert_code_to_token()
        {
            var token = await OAuthHelper.GetAccessTokenAsync(secrets.OAuthCode, secrets.OAuthClientId, secrets.OAuthClientSecret, redirectUrl);

            token.Dump();
        }
Exemplo n.º 42
0
        public GoogleCloudStorage(string url, Dictionary<string, string> options)
        {
            var uri = new Utility.Uri(url);

            m_bucket = uri.Host;
            m_prefix = "/" + uri.Path;
            if (!m_prefix.EndsWith("/"))
                m_prefix += "/";

            // For GCS we do not use a leading slash
            if (m_prefix.StartsWith("/"))
                m_prefix = m_prefix.Substring(1);

            string authid;
            options.TryGetValue(AUTHID_OPTION, out authid);
            options.TryGetValue(PROJECT_OPTION, out m_project);
            options.TryGetValue(LOCATION_OPTION, out m_location);
            options.TryGetValue(STORAGECLASS_OPTION, out m_storage_class);

            if (string.IsNullOrEmpty(authid))
                throw new Exception(Strings.GoogleCloudStorage.MissingAuthID(AUTHID_OPTION));

            m_oauth = new OAuthHelper(authid, this.ProtocolKey);
            m_oauth.AutoAuthHeader = true;
        }
Exemplo n.º 43
0
        private Task <Action <HttpWebRequest> > DoOAuthRequestAsync(string baseUrl, string oauthSource, string serverRsaExponent, string serverRsaModulus, string challenge, string apiKey, int tries)
        {
            if (oauthSource == null)
            {
                throw new ArgumentNullException("oauthSource");
            }

            var authRequestTuple = PrepareOAuthRequest(oauthSource, serverRsaExponent, serverRsaModulus, challenge, apiKey);
            var authRequest      = authRequestTuple.Item1;

            Task sendDataTask = new CompletedTask();

            if (authRequestTuple.Item2 != null)
            {
                sendDataTask = Task <Stream> .Factory.FromAsync(authRequest.BeginGetRequestStream, authRequest.EndGetRequestStream, null).ContinueWith(task =>
                {
                    using (var stream = task.Result)
                        using (var writer = new StreamWriter(stream))
                        {
                            writer.Write(authRequestTuple.Item2);
                        }
                });
            }


            return(sendDataTask.ContinueWith(t =>
            {
                t.Wait();

                return Task <WebResponse> .Factory.FromAsync(authRequest.BeginGetResponse, authRequest.EndGetResponse, null)
                .AddUrlIfFaulting(authRequest.RequestUri)
                .ConvertSecurityExceptionToServerNotFound()
                .ContinueWith(task =>
                {
                    try
                    {
                        using (var stream = task.Result.GetResponseStreamWithHttpDecompression())
                            using (var reader = new StreamReader(stream))
                            {
                                var currentOauthToken = "Bearer " + reader.ReadToEnd();
                                CurrentOauthToken = currentOauthToken;
#if SILVERLIGHT
                                BrowserCookieToAllowUserToUseStandardRequests(baseUrl, currentOauthToken);
#endif
                                return
                                CompletedTask.With(
                                    (Action <HttpWebRequest>)(request => SetHeader(request.Headers, "Authorization", CurrentOauthToken)));
                            }
                    }
                    catch (AggregateException ae)
                    {
                        var ex = ae.ExtractSingleInnerException() as WebException;

                        if (tries > 2 || ex == null)
                        {
                            // We've already tried three times and failed
                            throw;
                        }



                        var authResponse = ex.Response as HttpWebResponse;
                        if (authResponse == null || authResponse.StatusCode != HttpStatusCode.PreconditionFailed)
                        {
                            throw;
                        }

                        var header = authResponse.Headers["Www-Authenticate"];
                        if (string.IsNullOrEmpty(header) || !header.StartsWith(OAuthHelper.Keys.WWWAuthenticateHeaderKey))
                        {
                            throw;
                        }

#if !NETFX_CORE
                        authResponse.Close();
#endif

                        var challengeDictionary =
                            OAuthHelper.ParseDictionary(header.Substring(OAuthHelper.Keys.WWWAuthenticateHeaderKey.Length).Trim());

                        return DoOAuthRequestAsync(baseUrl, oauthSource,
                                                   challengeDictionary.GetOrDefault(OAuthHelper.Keys.RSAExponent),
                                                   challengeDictionary.GetOrDefault(OAuthHelper.Keys.RSAModulus),
                                                   challengeDictionary.GetOrDefault(OAuthHelper.Keys.Challenge),
                                                   apiKey,
                                                   tries + 1);
                    }
                }).Unwrap();
            }).Unwrap());
        }
Exemplo n.º 44
0
using Duplicati.Library.Backend.GoogleServices;
Exemplo n.º 45
0
        public async Task <TokenResult> Code(string code, string state = null)
        {
            var helper = new OAuthHelper("http://localhost:13905", "shoy", "123456");

            return(await helper.Code(code, "http://localhost:13905/code"));
        }