1

모바일 응용 프로그램에서 Amazon SimpleDB를 구현하고 자격 증명 파일의 비밀 액세스 키를 사용하여 모든 작업을 처리했습니다. 수집 한 내용으로는 작동하지 않으며 모바일 애플리케이션에 안전하지 않으므로 Cognito를 사용하여 사용자를 확인하고 SimpleDB에 대한 액세스 권한을 부여했습니다.AWS Cognito Credentials를 사용하여 Amazon SimpleDB에 액세스 할 수 있습니까?

Cognito가 제대로 연결되고 동기화되었지만 새로운 AmazonSimpleDBClient에 자격 증명을 전달한 다음 "인수가 null이 될 수 없음"메시지와 함께 선택 표현식을 호출 할 때 어떤 이유로

은 내가 전화 했어 방법은 다음과 같습니다

 //Connect to the DB 
    var sdb = new AmazonSimpleDBClient(
     credentials: Credentials, 
     region: RegionEndpoint.USWest2); 

    //Check if this user has any bots yet 
    string selectExpression = "Select count(*) From Bots where UserName = '" + username + "'"; 
    var selectRequestAction = new SelectRequest { SelectExpression = selectExpression }; 
    var selectResponse = sdb.Select(selectRequestAction); 

을 그리고 이것은 자격 증명을 설정하는 방법은 다음과 같습니다

private CognitoAWSCredentials Credentials 
{ 
    get 
    { 
     if (_credentials == null) 
      _credentials = new CognitoAWSCredentials("IDENTITY_POOL_ID", RegionEndpoint.APSoutheast2); 
     return _credentials; 
    } 
} 

난 아무것도에도이 문제 나에 관한 찾을 수 없습니다 이처럼 SimpleDB를 사용하려고하는 사람은 모두 하드 코드 된 자격 증명을 사용하는 것으로 보이지만 안전하지 않다는 것을 말합니다 ...

EDIT (전체 오류) ArgumentNullException : 인수는 null 일 수 없습니다. 매개 변수 이름 : 키 System.Collections.Generic.Dictionary`2 [System.Type, Amazon.Runtime.IExceptionHandler] .TryGetValue (System.Type 키, IExceptionHandler & 값) (/ Users/builduser/buildslave/mono/build에 있음) /mcs/class/corlib/System.Collections.Generic/Dictionary.cs:588) Amazon.Runtime.Internal.ErrorHandler.ProcessException (IExecutionContext executionContext, System.Exception 예외) (E :/JenkinsWorkspaces/v3-stage-release /WSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/ErrorHandler/ErrorHandler.cs:202) Amazon.Runtime.Internal.ErrorHandler.InvokeSync (IExecutionContext executionContext) (E :/JenkinsWorkspaces/v3-stage-release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/ErrorHandler/ErrorHandler.cs : 78) Amazon.Runtime.Internal.PipelineHandler.InvokeSync (IExecutionContext 실행 /JenkinsWorkspaces/v3-stage-release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs : 콘텍스트 E) (57) Amazon.Runtime.Internal.CallbackHandler.InvokeSync (IExecutionContext의 ExecutionContext) (E에서 : /JenkinsWorkspaces/v3-stage-release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/Handlers/CallbackHandler.cs 45) Amazon.Runtime.Internal.PipelineHandler.InvokeSync (IExecutionContext의 ExecutionContext) (AT E : /JenkinsWorkspaces/v3-stage-release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs : 57) Amazon.Runtime.Internal.Signer.InvokeSync (IExecutionContext executionContext) JenkinsWorkspaces/v3-stage-release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/Handlers/Signer.cs : 38) Amazon.Runtime.Internal.PipelineHandler.InvokeSync (IExecutionContext executionContext) (E :/JenkinsWorkspaces/v3-stage-relea AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs : 57) Amazon.Runtime.Internal.CredentialsRetriever.InvokeSync (IExecutionContext executionContext) (E :/JenkinsWorkspaces/v3-stage-release/AWSDotNetPublic /sdk/src/Core/Amazon.Runtime/Pipeline/Handlers/CredentialsRetriever.cs:72) Amazon.Runtime.Internal.PipelineHandler.InvokeSync (IExecutionContext executionContext) (E :/JenkinsWorkspaces/v3-stage-release/AWSDotNetPublic// JenkinsWorkspaces/v3-stage-release/AWSDotNetPublic/sdk/src에있는 Amazon.Runtime.Internal.RetryHandler.InvokeSync (IExecutionContext executionContext) (sdk/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs : 57) /Core/Amazon.Runtime/Pipeline/RetryHandler/RetryHandler.cs:74)

도움을 주시면 대단히 감사하겠습니다.

감사

+0

어떤 필드 당신이 null 일 수 없습니다 말하고있다? 정확하게 오류 메시지는 무엇입니까? –

+0

그것은 어떤 필드가 null인지 알려주지 않았습니다. sdb.Select 함수의 내부 오류 인 것 같았습니다. 나는 기회가있을 때마다 오류의 전체 내용을 게시 할 것입니다. – Lance

+0

설명에 전체 오류를 게시했는데 의견에 맞지 않습니다. 건배 – Lance

답변

0

그것은 내 참조 또는 호환되지 않는 SimpleDB에/Cognito 패키지에 문제가 될 밝혀졌다.

아마존에 대한 모든 참조가 삭제되었습니다. NuGet 업데이트 후 다음 명령을 Cognito 및 SimpleDB를 설치하기 위해 NuGet 명령 줄을 사용 :

설치 패키지 AWSSDK.CognitoIdentity 를 설치-패키지 AWSSDK.SimpleDB을