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[]>(); }
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); }); }); }; }
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(); }
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); } }
using Newtonsoft.Json; using Duplicati.Library.Backend.GoogleServices;
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) { } }
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)); }
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); }
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()); }
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)); } } } }
public AuthorizationController(OAuthHelper oAuthHelper) { OAuthHelper = oAuthHelper; }
public CreateProductMaster(OAuthHelper oAuthenticationHelper, LogMessage logMessageHandler, bool enableCrossCompany) : base(oAuthenticationHelper, logMessageHandler, enableCrossCompany) { }
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); }
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(); }
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); }
public void UrlEncode_Empty() { Assert.Equal("", OAuthHelper.UrlEncode("")); }
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)); }
public string LoginUrl(string returnUrl) { return(OAuthHelper.GenerateLoginUrl($"http://{Url.Request.Headers.Host}/AuthorizationCallBack/OAuth", returnUrl)); }
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(); }
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(); }
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)); }
// 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); } } } }
/// <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; }
} // 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); }); }; }
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(); }
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)); }
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(); }
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(); }
public InstapaperConnector(OAuthHelper h) { this.helper = h; }
public string token { get; set; }
/// <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>(); }
public async Task convert_code_to_token() { var token = await OAuthHelper.GetAccessTokenAsync(secrets.OAuthCode, secrets.OAuthClientId, secrets.OAuthClientSecret, redirectUrl); token.Dump(); }
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; }
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()); }
using Duplicati.Library.Backend.GoogleServices;
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")); }