/// <summary> /// Checks a single entry agasint vulnDB Search API. /// </summary> /// <param name="consumerkey"></param> /// <param name="consumersecret"></param> /// <param name="Application"></param> /// <returns></returns> public static string vulndb_appCheck(String consumerkey, String consumersecret, String Application) { try { var requestEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/request_token"); var authorizeEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/authorize"); var accessEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/access_token"); var ctx = new OAuthConsumerContext { ConsumerKey = consumerkey, ConsumerSecret = consumersecret, SignatureMethod = SignatureMethod.HmacSha1 }; var genericSession = new OAuthSession(ctx, requestEndPoint, authorizeEndPoint, accessEndPoint); var targetServiceUri = new Uri("https://vulndb.cyberriskanalytics.com/api/v1/vulnerabilities/search_query?query=\"" + Application.ToString() + "\""); var respText = genericSession.Request().Get().ForUri(targetServiceUri).ToString(); return(respText); } catch (WebException ex) { using (var stream = ex.Response.GetResponseStream()) using (var reader = new StreamReader(stream)) { Console.WriteLine(reader.ReadToEnd()); return("Nothing Found for: " + Application.ToString()); } } }
static async Task MainAsync() { var enterpriseToken = boxJWTHelper.GetEnterpriseToken(); var config = new BoxConfig(CLIENT_ID, CLIENT_SECRET, new Uri("http://localhost")); var adminSession = new OAuthSession(enterpriseToken, REFRESH_TOKEN, 3600, "bearer"); adminClient = new BoxClient(config, adminSession); string appUserId = boxJWTHelper.CreateAppUser("test user", enterpriseToken); var userToken = boxJWTHelper.GetUserToken(appUserId); var userSession = new OAuthSession(userToken, REFRESH_TOKEN, 3600, "bearer"); userClient = new BoxClient(config, userSession); var items = await adminClient.FoldersManager.GetFolderItemsAsync("0", 100); Console.WriteLine("Admin account root folder items:"); items.Entries.ForEach((i) => { Console.WriteLine("\t{0}", i.Name); if (i is BoxFile) { Console.WriteLine("\t{0}", BoxJWTHelper.EmbedUrl(i.Id, enterpriseToken)); } }); var userDetails = await userClient.UsersManager.GetCurrentUserInformationAsync(); Console.WriteLine("\nApp User Details:"); Console.WriteLine("\tId: {0}", userDetails.Id); Console.WriteLine("\tName: {0}", userDetails.Name); Console.WriteLine("\tStatus: {0}", userDetails.Status); boxJWTHelper.DeleteAppUser(appUserId, enterpriseToken); }
/// <summary> /// Used to Check if the API key is valid or not. /// </summary> /// <param name="consumerkey"></param> /// <param name="consumersecret"></param> /// <returns></returns> public static string CMS_Auditor(String consumerkey, String consumersecret) { try { var requestEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/request_token"); var authorizeEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/authorize"); var accessEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/access_token"); var ctx = new OAuthConsumerContext { ConsumerKey = consumerkey, ConsumerSecret = consumersecret, SignatureMethod = SignatureMethod.HmacSha1 }; var genericSession = new OAuthSession(ctx, requestEndPoint, authorizeEndPoint, accessEndPoint); var targetServiceUri = new Uri("https://vulndb.cyberriskanalytics.com/api/v1/vulnerabilities/search_query?utf8=✓&query=teamviewer"); var respText = genericSession.Request().Get().ForUri(targetServiceUri).ToString(); return(respText); } catch (WebException ex) { using (var stream = ex.Response.GetResponseStream()) using (var reader = new StreamReader(stream)) { Console.WriteLine(reader.ReadToEnd()); return("Please Check your API Key and Secret"); } } }
public ETradeClient(Stocks.OAuthToken consumerToken, bool productionMode = false, Stocks.OAuthToken accessToken = null) { _consumerToken = new ConsumerToken { Token = consumerToken.Token, TokenSecret = consumerToken.Secret }; _consumerContext = new OAuthConsumerContext { ConsumerKey = _consumerToken.Token, ConsumerSecret = _consumerToken.TokenSecret, SignatureMethod = SignatureMethod.HmacSha1, UseHeaderForOAuthParameters = true, CallBack = "oob" }; _session = new OAuthSession(_consumerContext, RequestUrl, AuthorizeUrl, AccessTokenUrl, RenewAccessTokenUrl); _productionMode = productionMode; if (accessToken != null) { _accessToken = new AccessToken { Token = accessToken.Token, TokenSecret = accessToken.Secret }; } }
/***************************************twitter API********************************************************************/ #region twitterAPI 使わない private void twitterData() { //Consumer API keys secretkey = "1OJmfQ2mMrnUpxQ5fS1QLXaWWAn1cnrCZx92MGaHmwVwFHhqPF"; API = "xHBnAs1VGUS719yrBmD14SYa4"; /* * //Access token & access token secret * KeysToken.keydata[1].Value = "601900069-LwMBnujIvrcku3yosdLbpKnnGiuMpWZV747kCsD2"; * KeysToken.keydata[0].Value = "Fx3XojaxVoEYaBJscFRHfE6D4eStYQvGYPrV1UUolIrWP"; */ if (File.Exists(Application.StartupPath + "\\context.xml")) { UC.browser.Load("https://twitter.com/"); xmlload(Application.StartupPath + "\\context.xml"); Thread timelist = new Thread(GetTtitterHomeline); timelist.Start(); } else { //Oath os = OAuth.Authorize(API, secretkey); //"https://twitter.com/" UC.browser.Load(os.AuthorizeUri.AbsoluteUri); Thread t1 = new Thread(waitdata); t1.Start(); } }
public string GetResponse(OAuthSession session, string url) { IToken accessToken = MyTokenBase; var response = session.Request(accessToken).Get().ForUrl(url).ToString(); return(response); }
private async void LoadCharacter(CharacterInfo character) { if (character == null) { return; } if (character.Id == null) { TargetCharacter = new CharacterSummary { Name = "<New Character>" }; return; } OAuthSession newSession = CreateOAuthSession(); HttpWebRequest request = newSession.Request() .ForUrl( $"https://api.obsidianportal.com/v1/campaigns/{character.CampaignId}/characters/{character.Id}.json") .Get(). ToWebRequest(); JObject charObject; using ( WebResponse response = await Task.Factory.FromAsync( request.BeginGetResponse, request.EndGetResponse, null)) using (var streamReader = new StreamReader(response.GetResponseStream())) using (var jsonReader = new JsonTextReader(streamReader)) charObject = JObject.Load(jsonReader); TargetCharacter = ToSummary(charObject); }
public void GoogleConsumer() { X509Certificate2 certificate = TestCertificates.OAuthTestCertificate(); string requestUrl = "https://www.google.com/accounts/OAuthGetRequestToken"; string userAuthorizeUrl = "https://www.google.com/accounts/accounts/OAuthAuthorizeToken"; string accessUrl = "https://www.google.com/accounts/OAuthGetAccessToken"; string callBackUrl = "http://www.mysite.com/callback"; var consumerContext = new OAuthConsumerContext { ConsumerKey = "weitu.googlepages.com", SignatureMethod = SignatureMethod.RsaSha1, Key = certificate.PrivateKey }; var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl) .WithQueryParameters(new { scope = "http://www.google.com/m8/feeds" }); // get a request token from the provider IToken requestToken = session.GetRequestToken(); // generate a user authorize url for this token (which you can use in a redirect from the current site) string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken, callBackUrl); // exchange a request token for an access token IToken accessToken = session.ExchangeRequestTokenForAccessToken(requestToken); // make a request for a protected resource string responseText = session.Request().Get().ForUrl("http://www.google.com/m8/feeds/contacts/default/base").ToString(); }
public MainViewModel() : base() { OAuthSession session = null; Config = new BoxConfig(ClientId, ClientSecret, RedirectUri); Client = new BoxClient(Config, session); }
public async Task <IActionResult> BoxRedirect(String code) { // AUTHコードが受け取れたか確認 Console.WriteLine("BoxRedirect {0}", code); var config = new BoxConfig(ClientId, ClientSecret, new System.Uri(CallBackUrl)); var client = new BoxClient(config); // AUTHコード → アクセストークンへ交換 await client.Auth.AuthenticateAsync(code); var accessToken = client.Auth.Session.AccessToken; //var refreshToken = client.Auth.Session.RefreshToken; OAuthSession session = client.Auth.Session; HttpContext.Session.SetString("AccessToken", session.AccessToken); HttpContext.Session.SetString("RefreshToken", session.RefreshToken); HttpContext.Session.SetInt32("ExpiresIn", session.ExpiresIn); HttpContext.Session.SetString("TokenType", session.TokenType); // clientが動くかテスト var user = await client.UsersManager.GetCurrentUserInformationAsync(); Console.WriteLine($"Login User: Id={user.Id}, Name={user.Name}, Login={user.Login}"); ViewBag.accessToken = accessToken; return(RedirectToAction("UIElements")); }
public async Task <IActionResult> UIElements() { // セッションからアクセストークン等を取り出す // ここはおそらくよりよい方法があるはず var accessToken = HttpContext.Session.GetString("AccessToken"); var refreshToken = HttpContext.Session.GetString("RefreshToken"); // expiresInはそのまま利用すべきではないと思われるが・・ var expiresIn = HttpContext.Session.GetInt32("ExpiresIn") ?? default(int); var tokenType = HttpContext.Session.GetString("TokenType"); Console.WriteLine($"session accessToken {accessToken}"); Console.WriteLine($"session refreshToken {refreshToken}"); Console.WriteLine($"session expiresIn {expiresIn}"); Console.WriteLine($"session tokenType {tokenType}"); // sessionを組み立て直し var session = new OAuthSession(accessToken, refreshToken, expiresIn, tokenType); // clientをSessionを元に作成 var config = new BoxConfig(ClientId, ClientSecret, new System.Uri(CallBackUrl)); var client = new BoxClient(config, session); // 動作確認として認証したユーザーの情報を表示 var user = await client.UsersManager.GetCurrentUserInformationAsync(); Console.WriteLine($"Login User: Id={user.Id}, Name={user.Name}, Login={user.Login}"); ViewBag.accessToken = accessToken; return(View()); }
public async Task QueueTask_MultipleThreads_OrderedResponse() { /*** Arrange ***/ var numTasks = 1000; var count = 0; // Increments the access token each time a call is made to the API _handler.Setup(h => h.ExecuteAsync <OAuthSession>(It.IsAny <IBoxRequest>())) .Returns(() => Task.FromResult <IBoxResponse <OAuthSession> >(new BoxResponse <OAuthSession>() { Status = ResponseStatus.Success, ContentString = "{\"access_token\": \"" + count + "\",\"expires_in\": 3600,\"token_type\": \"bearer\",\"refresh_token\": \"J7rxTiWOHMoSC1isKZKBZWizoRXjkQzig5C6jFgCVJ9bUnsUfGMinKBDLZWP9BgR\"}" })).Callback(() => System.Threading.Interlocked.Increment(ref count)); /*** Act ***/ IBoxRequest request = new BoxRequest(new Uri("http://box.com"), "folders"); var tasks = new List <Task <IBoxResponse <OAuthSession> > >(); for (var i = 0; i < numTasks; i++) { tasks.Add(_service.EnqueueAsync <OAuthSession>(request)); } await Task.WhenAll(tasks); /*** Assert ***/ for (var i = 0; i < numTasks; i++) { OAuthSession session = _converter.Parse <OAuthSession>(tasks[i].Result.ContentString); Assert.AreEqual(session.AccessToken, i.ToString()); } }
// The 'actual' method public SPOService InstantiateSPOService(Uri destinationUrl, string loginUrl, PSCredential credential, string tenantId, PromptBehavior?behavior) { var context = new CmdLetContext(destinationUrl.ToString(), null, null); if (credential == null) { OAuthSession session = string.IsNullOrEmpty(tenantId) ? new OAuthSession() : new OAuthSession(string.Format(nonCommon, tenantId)); if (_cid == null) { session.SignIn(loginUrl, behavior.Value); } else { session.SignIn(loginUrl, behavior.Value, _cid.ToString(), _rduri.ToString()); } context.OAuthSession = session; } else { var spCreds = new SharePointOnlineCredentials(credential.UserName, credential.Password); context.Credentials = spCreds; } return(new SPOService(context)); }
public void GetUserAuthorizationUriForTokenWithoutCallback() { var session = new OAuthSession(new OAuthConsumerContext(), "http://localhost/request", "http://localhost/userauth", "http://localhost/access"); string actual = session.GetUserAuthorizationUrlForToken(new TokenBase {Token = "token"}, null); Assert.Equal("http://localhost/userauth?oauth_token=token", actual); }
static string GetDevDefinedOAuthHeader(HttpWebRequest webRequest, string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret) { OAuthConsumerContext consumerContext = new OAuthConsumerContext { ConsumerKey = consumerKey, ConsumerSecret = consumerSecret, SignatureMethod = SignatureMethod.HmacSha1, UseHeaderForOAuthParameters = true }; consumerContext.UseHeaderForOAuthParameters = true; OAuthSession oSession = new OAuthSession(consumerContext, GET_REQUEST_TOKEN, AuthorizeUrl, GET_ACCESS_TOKEN); oSession.AccessToken = new TokenBase { Token = accessToken, ConsumerKey = consumerKey, TokenSecret = accessTokenSecret }; IConsumerRequest consumerRequest = oSession.Request(); consumerRequest = ConsumerRequestExtensions.ForMethod(consumerRequest, webRequest.Method); consumerRequest = ConsumerRequestExtensions.ForUri(consumerRequest, webRequest.RequestUri); consumerRequest = consumerRequest.SignWithToken(); return(consumerRequest.Context.GenerateOAuthParametersForHeader()); }
public async Task <bool> Claim(Uri uri, string documentTitle) { IDictionary <string, string> keyDictionary = new Dictionary <string, string>(); var qSplit = uri.Query.Split('?'); foreach (var kvp in qSplit[qSplit.Length - 1].Split('&')) { var kvpSplit = kvp.Split('='); if (kvpSplit.Length == 2) { keyDictionary.Add(kvpSplit[0], kvpSplit[1]); } } if (!keyDictionary.ContainsKey("code")) { return(false); } var authCode = keyDictionary["code"]; if (string.IsNullOrEmpty(authCode)) { return(false); } _api = BoxHelper.GetClient(); _token = await _api.Auth.AuthenticateAsync(authCode); return(_token != null && _token.RefreshToken != null && _token.AccessToken != null); }
// this performs our main OAuth authentication, performing // the request token retrieval, authorization, and exchange // for an access token public IToken GetAccessToken() { var consumerContext = new OAuthConsumerContext() { ConsumerKey = "anyone" }; var rest_client = new JsonServiceClient(BaseUri); var url = new Rainy.WebService.ApiRequest().ToUrl("GET"); var api_ref = rest_client.Get <ApiResponse> (url); var session = new OAuthSession(consumerContext, api_ref.OAuthRequestTokenUrl, api_ref.OAuthAuthorizeUrl, api_ref.OAuthAccessTokenUrl); IToken request_token = session.GetRequestToken(); // we dont need a callback url string link = session.GetUserAuthorizationUrlForToken(request_token, "http://example.com/"); // visit the link to perform the authorization (no interaction needed) HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(link); // disallow auto redirection, since we are interested in the location header only req.AllowAutoRedirect = false; // the oauth_verifier we need, is part of the querystring in the (redirection) // 'Location:' header string location = ((HttpWebResponse)req.GetResponse()).Headers ["Location"]; var query = string.Join("", location.Split('?').Skip(1)); var oauth_data = System.Web.HttpUtility.ParseQueryString(query); IToken access_token = session.ExchangeRequestTokenForAccessToken(request_token, oauth_data ["oauth_verifier"]); return(access_token); }
private static string GetDevDefinedOAuthHeader(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, HttpWebRequest webRequest, string requestBody) { OAuthConsumerContext consumerContext = new OAuthConsumerContext { ConsumerKey = consumerKey, SignatureMethod = SignatureMethod.HmacSha1, ConsumerSecret = consumerSecret, UseHeaderForOAuthParameters = true }; //We already have OAuth tokens, so OAuth URIs below are not used - set to example.com OAuthSession oSession = new OAuthSession(consumerContext, "https://www.example.com", "https://www.example.com", "https://www.example.com"); oSession.AccessToken = new TokenBase { Token = accessToken, ConsumerKey = consumerKey, TokenSecret = accessTokenSecret }; IConsumerRequest consumerRequest = oSession.Request(); consumerRequest = ConsumerRequestExtensions.ForMethod(consumerRequest, webRequest.Method); if (requestBody != null) { consumerRequest = consumerRequest.Post().WithRawContentType(webRequest.ContentType).WithRawContent(System.Text.Encoding.ASCII.GetBytes(requestBody)); } consumerRequest = ConsumerRequestExtensions.ForUri(consumerRequest, webRequest.RequestUri); consumerRequest = consumerRequest.SignWithToken(); return(consumerRequest.Context.GenerateOAuthParametersForHeader()); }
private async Task FillCampaigns(OAuthSession newSession) { HttpWebRequest request = newSession.Request().Get().ForUrl("https://api.obsidianportal.com/v1/users/me.json").ToWebRequest(); JObject meObject; using ( WebResponse response = await Task.Factory.FromAsync( request.BeginGetResponse, request.EndGetResponse, null)) using (var streamReader = new StreamReader(response.GetResponseStream())) using (var jsonReader = new JsonTextReader(streamReader)) meObject = JObject.Load(jsonReader); var campaigns = (JArray)meObject["campaigns"]; _settings.UserName = (string)meObject["username"]; UserName = _settings.UserName; _settings.Save(); AllCampaigns = new ObservableCollection <CampaignInfo>( campaigns.Select( c => new CampaignInfo { Name = (string)c["name"], Id = (string)c["id"] })); CurrentCampaign = AllCampaigns.FirstOrDefault(c => c.Id == _settings.LastCampaignId); }
/// <summary> /// Used to Check if the API key is valid or not. /// </summary> /// <param name="consumerkey"></param> /// <param name="consumersecret"></param> /// <returns></returns> public static Boolean vulndbCheckCredentials(String consumerkey, String consumersecret) { if (consumerkey == "" || consumersecret == "") { return(false); } try { var requestEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/request_token"); var authorizeEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/authorize"); var accessEndPoint = new Uri("https://vulndb.cyberriskanalytics.com/oauth/access_token"); var ctx = new OAuthConsumerContext { ConsumerKey = consumerkey, ConsumerSecret = consumersecret, SignatureMethod = SignatureMethod.HmacSha1 }; var genericSession = new OAuthSession(ctx, requestEndPoint, authorizeEndPoint, accessEndPoint); var targetServiceUri = new Uri("https://vulndb.cyberriskanalytics.com/api/v1/vulnerabilities/"); var respText = genericSession.Request().Get().ForUri(targetServiceUri).ToString(); return(true); } catch (WebException ex) { using (var stream = ex.Response.GetResponseStream()) using (var reader = new StreamReader(stream)) { Console.WriteLine(reader.ReadToEnd()); return(false); } } }
/// <summary> /// <para>Gets the OAuth tokens.</para> /// <para>Be sure to call <see cref="CoreTweet.OAuth.Authorize"/> before call this method.</para> /// </summary> /// <param name="session">The OAuth session.</param> /// <param name="pin">The pin code.</param> /// <returns>The tokens.</returns> public static Tokens GetTokens(this OAuthSession session, string pin) { var prm = new Dictionary <string, object>() { { "oauth_verifier", pin } }; var header = Tokens.Create(session.ConsumerKey, session.ConsumerSecret, session.RequestToken, session.RequestTokenSecret) .CreateAuthorizationHeader(MethodType.Get, AccessTokenUrl, prm); try { var dic = from x in Request.HttpGet(AccessTokenUrl, prm, header, session.ConnectionOptions).Use() from y in new StreamReader(x.GetResponseStream()).Use() select y.ReadToEnd() .Split('&') .Where(z => z.Contains('=')) .Select(z => z.Split('=')) .ToDictionary(z => z[0], z => z[1]); var t = Tokens.Create(session.ConsumerKey, session.ConsumerSecret, dic["oauth_token"], dic["oauth_token_secret"], long.Parse(dic["user_id"]), dic["screen_name"]); t.ConnectionOptions = session.ConnectionOptions; return(t); } catch (WebException ex) { var tex = TwitterException.Create(ex); if (tex != null) { throw tex; } throw; } }
/// <summary> /// <para>Gets the OAuth tokens as an asynchronous operation.</para> /// <para>Be sure to call <see cref="CoreTweet.OAuth.AuthorizeAsync"/> before call this method.</para> /// </summary> /// <param name="session">The OAuth session.</param> /// <param name="pin">The pin code.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns> /// <para>The task object representing the asynchronous operation.</para> /// <para>The Result property on the task object returns the tokens.</para> /// </returns> public static Task <Tokens> GetTokensAsync(this OAuthSession session, string pin, CancellationToken cancellationToken = default(CancellationToken)) { var prm = new Dictionary <string, object>() { { "oauth_verifier", pin } }; var header = Tokens.Create(session.ConsumerKey, session.ConsumerSecret, session.RequestToken, session.RequestTokenSecret) .CreateAuthorizationHeader(MethodType.Get, AccessTokenUrl, prm); return(Request.HttpGetAsync(AccessTokenUrl, prm, header, session.ConnectionOptions, cancellationToken) .ResponseCallback(cancellationToken) .ContinueWith( t => InternalUtils.ReadResponse(t, s => { var dic = s.Split('&') .Where(z => z.Contains("=")) .Select(z => z.Split('=')) .ToDictionary(z => z[0], z => z[1]); var token = Tokens.Create(session.ConsumerKey, session.ConsumerSecret, dic["oauth_token"], dic["oauth_token_secret"], long.Parse(dic["user_id"]), dic["screen_name"]); token.ConnectionOptions = session.ConnectionOptions; return token; }, cancellationToken), cancellationToken ).Unwrap()); }
public void generate_request_with_raw_body_includes_body_hash() { var session = new OAuthSession(new OAuthConsumerContext { ConsumerKey = "consumer", UseHeaderForOAuthParameters = true }, "http://localhost/request", "http://localhost/userauth", "http://localhost/access"); var accessToken = new TokenBase { ConsumerKey = "consumer", Token = "token", TokenSecret = "secret" }; byte[] rawContents = Encoding.UTF8.GetBytes("Hello World!"); IConsumerRequest content = session .EnableOAuthRequestBodyHashes() .Request(accessToken) .Post() .ForUrl("http://localhost/resource") .WithRawContent(rawContents); RequestDescription description = content.GetRequestDescription(); Assert.Equal(rawContents, description.RawBody); Assert.Contains("oauth_body_hash=\"Lve95gjOVATpfV8EL5X4nxwjKHE%3D\"", description.Headers[Parameters.OAuth_Authorization_Header]); }
private async void OnOpenBrowserAuthAsync(object sender, RoutedEventArgs e) { var progdiag = await this.ShowProgressAsync("読み込み中...", "認証の準備をしています。しばらくお待ちください。"); try { await Task.Run(() => { session = OAuth.Authorize(APIKey.CONSUMER_KEY, APIKey.CONSUMER_SECRET); var processStartInfo = new ProcessStartInfo(session.AuthorizeUri.AbsoluteUri) { UseShellExecute = true, Verb = "open" }; System.Diagnostics.Process.Start(processStartInfo); }); WindowTab.SelectedIndex = 1; } catch (Exception ex) { await this.ShowMessageAsync("エラー", $"何らかのエラーで認証を開始することが出来ませんでした。\n\n{ex}"); } finally { await progdiag.CloseAsync(); } }
/// <summary> /// <para>Performs the query specified in the "query" string to perform a request that requires authorization. /// </para><para>This method requires that either an accessToken has been set manually or /// that the GetVerificationCode() and AuthenticateWithVerificationCode(string code) methods have been called previously. /// </para><para>It returns the IConsumerRequest fully enabled to make the request specified in the "query" string.</para> /// </summary> /// <param name="query">The query string that will be added to the url and used to connect to the API with.</param> /// <returns>IConsumerRequest.</returns> public IConsumerRequest AuthenticatedQuery(string query) { var url = BaseUrl + query; if (AccessToken == null) { throw new AccessTokenIsNullException(); } var consumerContext = new OAuthConsumerContext { ConsumerKey = ConsumerKey, ConsumerSecret = ConsumerSecret, SignatureMethod = SignatureMethod.HmacSha1, UseHeaderForOAuthParameters = true }; var consumerSession = new OAuthSession(consumerContext, RequestTokenUrl + ScopeOfRequest, AuthorizeUrl, AccessUrl) { AccessToken = AccessToken }; var getRequest = consumerSession .Request() .ForMethod(Constants.GET) .ForUri(new Uri(url)) .SignWithToken(AccessToken); return(getRequest); }
/// <summary> /// This updates the parties squad assignments, mainly used when a member joins or leaves. /// </summary> /// <param name="oAuthSession">The <see cref="OAuthSession"/> to use for authentication.</param> internal async Task UpdateSquadAssignments(OAuthSession oAuthSession) { // Initialise our variables var assignments = new List <RawSquadAssignment>(); var index = 0; // Add the current account to the list of assignments assignments.Add(new(oAuthSession.AccountId)); // For each member in the party... foreach (var member in Members) { // If the member is our XMPP client, continue enumerating through the party's members. if (member.Id == oAuthSession.AccountId) { continue; } // Increment our index and add the member to the list of assignments. index++; assignments.Add(new(member.Id, index)); } // Update/set our meta to the list of assignments. Meta["Default:RawSquadAssignments_j"] = new RawSquadAssignments(assignments).ToString(); // Update the party with the new squad assignments. await PartyService.UpdateParty(oAuthSession, this, new() { { "Default:RawSquadAssignments_j", Meta["Default:RawSquadAssignments_j"] } }); }
/// <summary> /// <para>This is the second and final step in the authorisation process. It uses the verification code (retrieved in public string GetVerificationCode()). /// </para><para>It exchanges the verification code for an access token.</para> /// <para>Once this step has been performed the user will be enabled to perform authenticated requests.</para> /// </summary> /// <param name="code">The verification code.</param> public void AuthenticateWithVerificationCode(string code) { if (string.IsNullOrEmpty(code)) { throw new NoVerificationCodeException(); } code = code.Trim(); var consumerContext = new OAuthConsumerContext { ConsumerKey = ConsumerKey, ConsumerSecret = ConsumerSecret, SignatureMethod = SignatureMethod.HmacSha1, UseHeaderForOAuthParameters = true }; var session = new OAuthSession( consumerContext, RequestTokenUrl + ScopeOfRequest, AuthorizeUrl, AccessUrl); AccessToken = session.ExchangeRequestTokenForAccessToken(RequestToken, code); }
// unauthenticated connection method: /// <summary> /// Creates a connection with no authorization headers - used for requests that don't require authentication. /// This method does not actually perform the request - it returns the object to make the request with. /// </summary> /// <param name="query">The url to connect to.</param> /// <returns>IConsumerRequest.</returns> public IConsumerRequest UnauthenticatedConnection(string query) { var url = BaseUrl + query; if (AccessToken != null) { return(AuthenticatedQuery(query)); } var consumerContext = new OAuthConsumerContext { ConsumerKey = " ", ConsumerSecret = " ", SignatureMethod = DevDefined.OAuth.Framework.SignatureMethod.PlainText, UseHeaderForOAuthParameters = false }; var consumerSession = new OAuthSession(consumerContext, RequestTokenUrl, AuthorizeUrl, AccessUrl); var getRequest = consumerSession .Request() .ForMethod(Constants.GET) .ForUri(new Uri(url)); return(getRequest); }
private async Task ExecuteMainAsync() { var devToken = "E3myQeNXgY2PA5q2AQaSqLbEUIVabPeU"; var fileName = "test.txt"; var localFilePath = @"C:\Users\Public\test.txt"; var parentFolderId = "1"; var timer = Stopwatch.StartNew(); var config = new BoxConfig(CLIENT_ID, CLIENT_SECRET, new Uri("http://boxsdk")); //DevToken var auth = new OAuthSession(devToken, "NOT_NEEDED", 3600, "bearer"); var client = new BoxClient(config, auth); var file = File.OpenRead(localFilePath); var fileRequest = new BoxFileRequest { Name = fileName, Parent = new BoxFolderRequest { Id = parentFolderId } }; var bFile = await client.FilesManager.UploadAsync(fileRequest, file); Console.WriteLine("{0} uploaded to folder: {1} as file: {2}", localFilePath, parentFolderId, bFile.Id); Console.WriteLine("Time spend : {0} ms", timer.ElapsedMilliseconds); Console.ReadKey(); }
static string GetDevDefinedOAuthHeader(HttpWebRequest webRequest, string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret) { OAuthConsumerContext consumerContext = new OAuthConsumerContext { ConsumerKey = consumerKey, ConsumerSecret = consumerSecret, SignatureMethod = SignatureMethod.HmacSha1, UseHeaderForOAuthParameters = true }; consumerContext.UseHeaderForOAuthParameters = true; //URIs not used - we already have Oauth tokens OAuthSession oSession = new OAuthSession(consumerContext, "https://www.example.com", "https://www.example.com", "https://www.example.com"); oSession.AccessToken = new TokenBase { Token = accessToken, ConsumerKey = consumerKey, TokenSecret = accessTokenSecret }; IConsumerRequest consumerRequest = oSession.Request(); consumerRequest = ConsumerRequestExtensions.ForMethod(consumerRequest, webRequest.Method); consumerRequest = ConsumerRequestExtensions.ForUri(consumerRequest, webRequest.RequestUri); consumerRequest = consumerRequest.SignWithToken(); return(consumerRequest.Context.GenerateOAuthParametersForHeader()); }
public PINInputForm(string postMassage, OAuthSession session) { _postMassage = postMassage; _session = session; InitializeComponent(); }
public async Task SetTokensFromPinCodeAsync(OAuthSession session, uint pinCode) { this.Tokens = new Tokens(await OAuth.GetTokensAsync(session, pinCode.ToString())); this.IsTokensLoaded = true; this._isDirty = true; }