/// <summary> /// Initiates the asynchronous execution of the GetOpenIdTokenForDeveloperIdentity operation. /// <seealso cref="Amazon.CognitoIdentity.IAmazonCognitoIdentity"/> /// </summary> /// <param name="request">Container for the necessary parameters to execute the GetOpenIdTokenForDeveloperIdentity operation.</param> /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes</param> /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property.</param> /// <returns>void</returns> public void GetOpenIdTokenForDeveloperIdentityAsync(GetOpenIdTokenForDeveloperIdentityRequest request, AmazonServiceCallback callback, object state) { if (!AmazonInitializer.IsInitialized) { throw new Exception("AWSPrefab is not added to the scene"); } ThreadPool.QueueUserWorkItem(new WaitCallback(delegate { var marshaller = new GetOpenIdTokenForDeveloperIdentityRequestMarshaller(); var unmarshaller = GetOpenIdTokenForDeveloperIdentityResponseUnmarshaller.Instance; Invoke(request, callback, state, marshaller, unmarshaller, signer); })); return; }
public void GetOpenIdTokenForDeveloperIdentityAsync(GetOpenIdTokenForDeveloperIdentityRequest request, AmazonServiceCallback <GetOpenIdTokenForDeveloperIdentityRequest, GetOpenIdTokenForDeveloperIdentityResponse> callback, AsyncOptions options = null) { options = ((options == null) ? new AsyncOptions() : options); GetOpenIdTokenForDeveloperIdentityRequestMarshaller marshaller = new GetOpenIdTokenForDeveloperIdentityRequestMarshaller(); GetOpenIdTokenForDeveloperIdentityResponseUnmarshaller instance = GetOpenIdTokenForDeveloperIdentityResponseUnmarshaller.Instance; Action <AmazonWebServiceRequest, AmazonWebServiceResponse, Exception, AsyncOptions> callbackHelper = null; if (callback != null) { callbackHelper = delegate(AmazonWebServiceRequest req, AmazonWebServiceResponse res, Exception ex, AsyncOptions ao) { AmazonServiceResult <GetOpenIdTokenForDeveloperIdentityRequest, GetOpenIdTokenForDeveloperIdentityResponse> responseObject = new AmazonServiceResult <GetOpenIdTokenForDeveloperIdentityRequest, GetOpenIdTokenForDeveloperIdentityResponse>((GetOpenIdTokenForDeveloperIdentityRequest)req, (GetOpenIdTokenForDeveloperIdentityResponse)res, ex, ao.State); callback(responseObject); }; } BeginInvoke(request, marshaller, instance, options, callbackHelper); }
internal GetOpenIdTokenForDeveloperIdentityResponse GetOpenIdTokenForDeveloperIdentity(GetOpenIdTokenForDeveloperIdentityRequest request) { GetOpenIdTokenForDeveloperIdentityRequestMarshaller marshaller = new GetOpenIdTokenForDeveloperIdentityRequestMarshaller(); GetOpenIdTokenForDeveloperIdentityResponseUnmarshaller instance = GetOpenIdTokenForDeveloperIdentityResponseUnmarshaller.Instance; return(Invoke <GetOpenIdTokenForDeveloperIdentityRequest, GetOpenIdTokenForDeveloperIdentityResponse>(request, marshaller, instance)); }
/// <summary> /// Initiates the asynchronous execution of the GetOpenIdTokenForDeveloperIdentity operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the GetOpenIdTokenForDeveloperIdentity operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task <GetOpenIdTokenForDeveloperIdentityResponse> GetOpenIdTokenForDeveloperIdentityAsync(GetOpenIdTokenForDeveloperIdentityRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new GetOpenIdTokenForDeveloperIdentityRequestMarshaller(); var unmarshaller = GetOpenIdTokenForDeveloperIdentityResponseUnmarshaller.Instance; return(InvokeAsync <GetOpenIdTokenForDeveloperIdentityRequest, GetOpenIdTokenForDeveloperIdentityResponse>(request, marshaller, unmarshaller, cancellationToken)); }
public ActionResult Browse() { List <Models.S3File> files = new List <Models.S3File>(); strCurrentUsername = HttpContext.User.Identity.Name; if (!string.IsNullOrEmpty(strCurrentUsername)) { if (strCurrentUsername.EndsWith("workerbee.com")) { strUserCognitoPoolId = strWorkerBeeCognitoPoolId; } else if (strCurrentUsername.EndsWith("queenbee.com")) { strUserCognitoPoolId = strQueenBeeCognitoPoolId; } else if (strCurrentUsername.EndsWith("beehive.com")) { strUserCognitoPoolId = strBeeHiveCognitoPoolId; } else //any other email domain { strUserCognitoPoolId = strFreeBeeCognitoPoolId; } } Amazon.RegionEndpoint northVirginiaRegion = Amazon.RegionEndpoint.USEast1; //Virginia location string strAccessKeyId = ConfigurationManager.AppSettings["CognitoDeveloperAccessKeyId"]; string strAccessKeySecret = ConfigurationManager.AppSettings["CognitoDeveloperAccessKeySecret"]; AmazonCognitoIdentityClient cognitoIdClient = new AmazonCognitoIdentityClient(strAccessKeyId, strAccessKeySecret, northVirginiaRegion); if (cognitoIdClient != null) { Dictionary <string, string> customLogin = new Dictionary <string, string>(); customLogin.Add(DEVELOPER_PROVIDER_NAME, HttpContext.User.Identity.Name); GetOpenIdTokenForDeveloperIdentityRequest oidcTokenReq = new GetOpenIdTokenForDeveloperIdentityRequest(); //oidcTokenReq.IdentityId = HttpContext.User.Identity.Name; oidcTokenReq.IdentityPoolId = strUserCognitoPoolId; oidcTokenReq.TokenDuration = 86400; //24hr for ID token validaty oidcTokenReq.Logins = customLogin; //Get an OpenID Connect token from AWS Cognito GetOpenIdTokenForDeveloperIdentityResponse oidcTokenRes = cognitoIdClient.GetOpenIdTokenForDeveloperIdentity(oidcTokenReq); //Get the Cognito Identity ID for the current user GetCredentialsForIdentityRequest credentialsForIdReq = new GetCredentialsForIdentityRequest() { IdentityId = oidcTokenRes.IdentityId, //Logins = customLogin }; Dictionary <string, string> token = new Dictionary <string, string>(); token.Add("cognito-identity.amazonaws.com", oidcTokenRes.Token);// //Get the token from AWS STS (through AWS Cognito) to assume an AWS role that will allow to user to query AWS S3 GetCredentialsForIdentityResponse credentialsForIdRes = cognitoIdClient.GetCredentialsForIdentity(oidcTokenRes.IdentityId, token); Credentials awsCreds = credentialsForIdRes.Credentials; using (var s3Client = new AmazonS3Client(awsCreds, northVirginiaRegion)) { try { var bucketsRes = s3Client.ListBuckets(); List <S3Bucket> buckets = bucketsRes.Buckets; foreach (S3Bucket bucket in buckets) { try { ListObjectsResponse listObjectsRes = s3Client.ListObjects(bucket.BucketName); List <S3Object> s3Objects = listObjectsRes.S3Objects; foreach (S3Object s3file in s3Objects) { files.Add(new Models.S3File() { FileName = s3file.Key }); } } catch (Exception ex) { } } } catch (AmazonCognitoIdentityException cex) { string strError = cex.ToString(); } catch (Exception ex) { ////throw; } } } return(View(files)); }