Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以使用AWS Cognito凭据访问Amazon SimpleDB吗?_C#_Amazon Web Services_Credentials_Amazon Cognito_Amazon Simpledb - Fatal编程技术网

C# 我可以使用AWS Cognito凭据访问Amazon SimpleDB吗?

C# 我可以使用AWS Cognito凭据访问Amazon SimpleDB吗?,c#,amazon-web-services,credentials,amazon-cognito,amazon-simpledb,C#,Amazon Web Services,Credentials,Amazon Cognito,Amazon Simpledb,我在我的移动应用程序中实现了AmazonSimpleDB,并使用凭证文件中的秘密访问密钥实现了所有功能。据我所知,这对移动应用程序不起作用,也不安全,所以我研究了使用Cognito来验证用户并让他们访问SimpleDB 我让Cognito正确地连接和同步,但由于某种原因,当我将凭据传递给新的AmazonSimpleDBClient,然后调用一个select表达式时,它会弹出一条“参数不能为null”消息 我这样称呼它: //Connect to the DB var sd

我在我的移动应用程序中实现了AmazonSimpleDB,并使用凭证文件中的秘密访问密钥实现了所有功能。据我所知,这对移动应用程序不起作用,也不安全,所以我研究了使用Cognito来验证用户并让他们访问SimpleDB

我让Cognito正确地连接和同步,但由于某种原因,当我将凭据传递给新的AmazonSimpleDBClient,然后调用一个select表达式时,它会弹出一条“参数不能为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这样的人-他们似乎都使用硬编码凭据,同时说这是不安全的

编辑(完全错误) ArgumentNullException:参数不能为null。 参数名称:key System.Collections.Generic.Dictionary`2[System.Type,Amazon.Runtime.IExceptionHandler].TryGetValue(System.Type键,IExceptionHandler&value)(at/Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:588) Amazon.Runtime.Internal.ErrorHandler.ProcessException(IExecutionContext executionContext,System.Exception Exception)(位于E:/JenkinsWorkspace/v3 stage release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/ErrorHandler/ErrorHandler.cs:202) Amazon.Runtime.Internal.ErrorHandler.InvokeSync(IExecutionContext executionContext)(位于E:/JenkinsWorkspace/v3 stage release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/ErrorHandler/ErrorHandler.cs:78) Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext)(位于E:/JenkinsWorkspace/v3 stage release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:57) Amazon.Runtime.Internal.CallbackHandler.InvokeSync(IExecutionContext executionContext)(位于E:/JenkinsWorkspace/v3 stage release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/Handlers/CallbackHandler.cs:45) Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext)(位于E:/JenkinsWorkspace/v3 stage release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:57) Amazon.Runtime.Internal.Signer.InvokeSync(IExecutionContext executionContext)(位于E:/JenkinsWorkspace/v3 stage release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/Handlers/Signer.cs:38) Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext)(位于E:/JenkinsWorkspace/v3 stage release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:57) Amazon.Runtime.Internal.CredentialsRetriever.InvokeSync(IExecutionContext executionContext)(位于E:/JenkinsWorkspace/v3 stage release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/Handlers/CredentialsRetriever.cs:72) Amazon.Runtime.Internal.PipelineHandler.InvokeSync(IExecutionContext executionContext)(位于E:/JenkinsWorkspace/v3 stage release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:57) Amazon.Runtime.Internal.RetryHandler.InvokeSync(IExecutionContext executionContext)(位于E:/JenkinsWorkspace/v3 stage release/AWSDotNetPublic/sdk/src/Core/Amazon.Runtime/Pipeline/RetryHandler/RetryHandler.cs:74)

任何帮助都将不胜感激


谢谢

结果要么是我的引用有问题,要么是SimpleDB/Cognito包不兼容

我删除了对亚马逊的所有引用。更新了NuGet,然后使用NuGet命令行使用以下命令安装Cognito和SimpleDB:

安装软件包AWSSDK.CognitoIdentity
安装包AWSSDK.SimpleDB

结果是我的引用有问题,或者SimpleDB/Cognito包不兼容

我删除了对亚马逊的所有引用。更新了NuGet,然后使用NuGet命令行使用以下命令安装Cognito和SimpleDB:

安装软件包AWSSDK.CognitoIdentity
安装软件包AWSSDK.SimpleDB

哪个字段告诉您不能为空?错误消息是什么?它没有告诉我哪个字段是空的。这似乎是sdb.Select函数中的内部错误。我会在有机会的时候发布错误的全部细节。我在描述中发布了全部错误,不适合评论。Cheers我认为我的引用可能存在一些问题,这是突然出现的,我不确定原因:错误13在未引用的程序集中定义了类型“Amazon.Runtime.AmazonWebServiceResponse”。您必须添加对程序集“AWSSDK.Core,Version=3.3.0.0,Culture=neutral,PublicKeyToken=885c28607f98e604”的引用。我已经安装了那个引用,所以我不知道这条消息在说什么。顺便说一下,这是一个Unity项目,我不知道这是否有区别。它告诉你哪个字段不能为空?错误消息是什么?它没有告诉我哪个字段是空的。这似乎是sdb.Select函数中的内部错误。我会在有机会的时候发布错误的全部细节。我在描述中发布了全部错误,不适合评论。Cheers我认为我的引用可能存在一些问题,这是突然出现的,我不确定原因:错误13在未引用的程序集中定义了类型“Amazon.Runtime.AmazonWebServiceResponse”。您必须添加对程序集“AWSSDK.Core,Version=3.3.0.0,Culture=neutral,PublicKeyToken=885c28607f98e604”的引用。我已经安装了那个引用,所以我不知道这条消息在说什么。顺便说一句,这是一个统一的项目,我不知道这是否有区别。