0

Amazon の Awssdk lib に理解できない問題があります。

Amazon からリソースを承認して取得するための簡単なクラスを作成しました。

ユーザー sessionConfig からの構成を使用します: clientId、identitypoolId、userpoolId、ユーザー名、パスワード、シークレット。

また、リクエスト構成 (signRequest) ホスト、絶対パス、メソッド、リージョン。

var client = AmazonClient(sessionConfig, requestconfig);

これで私は簡単に

  client.GetClientTokens();

これにより、CognitoAuth ユーザープールが呼び出されます。

 var cred = new CognitoAWSCredentials(_sessionConfig.IdentityPoolId,` RegionEndpoint.EUCentral1);

        var provider = new AmazonCognitoIdentityProviderClient(cred, RegionEndpoint.EUCentral1);

        CognitoUserPool userPool = new CognitoUserPool(_sessionConfig.UserPoolId, _sessionConfig.ClientId, provider);

        CognitoUser user = new CognitoUser(_sessionConfig.UserPoolId, _sessionConfig.ClientId, userPool, provider, _sessionConfig.Secret, _sessionConfig.UserName);

        var authRequest = new InitiateSrpAuthRequest()
        {

            Password = _sessionConfig.Password

        };

        AuthFlowResponse authResponse = await user.StartWithSrpAuthAsync(authRequest).ConfigureAwait(false);

それから私はちょうど電話します

client.GetApiResource(absolutpath);

そして、この認証情報を使用して、API からリソースを取得できます。

_requestConfig.AbsolutePath = absolutePath;
            //Signmethod from Amazon
            GetSignedRequest();

            var responses = _webRequest.GetResponse();
            var result = responses.GetResponseStream();
            var data = string.Empty;

            using (var sr = new StreamReader(result))
            {
                data = sr.ReadToEnd();
            }

            return data;

このコードは、私の dotnetcore コンソール アプリでチャームのように機能します。データとユーザーまたはその他の API リソースにアクセスするトークンになります。

Xamarin.Android ソリューションで使用したい場合。

資格情報を取得しようとすると、次のようになります。

user.StartWithSrpAuthAsync(authRequest).ConfigureAwait(false);

Amazon.CognitoIdentity.Model.NotAuthorizedException: ID 'eu-central-1:xxxxxxxxxxxxxxxxxxxxx' へのアクセスは禁止されています。

System.Net.HttpStatusCode.BadRequest

errorCode "NotAuthorizedException"

私が見ることができる唯一の違いは、プロバイダー構成からのUserAgentです。

コンソール プログラム:

aws-sdk-dotnet-coreclr/3.3.11.22 aws-sdk-dotnet-core/3.3.29.12 .NET_Core/4.6.26606.02 OS/Microsoft_Windows_10.0.14393

Xamarin.Android アプリ:

aws-sdk-dotnet-pcl/3.3.4.3 aws-sdk-dotnet-core/3.3.29.13 Mono/5.10.1(tarball) OS/ANDROID_7.0 PCL/Xamarin.Android

コンソールは動作します xamarin はこの例外をスローします。何か案は?

4

0 に答える 0