모바일 응용 프로그램에서 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)
도움을 주시면 대단히 감사하겠습니다.
감사
어떤 필드 당신이 null 일 수 없습니다 말하고있다? 정확하게 오류 메시지는 무엇입니까? –
그것은 어떤 필드가 null인지 알려주지 않았습니다. sdb.Select 함수의 내부 오류 인 것 같았습니다. 나는 기회가있을 때마다 오류의 전체 내용을 게시 할 것입니다. – Lance
설명에 전체 오류를 게시했는데 의견에 맞지 않습니다. 건배 – Lance