Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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 Cogntio:注册/登录后如何在.Net中发出身份验证请求_C#_Asp.net Mvc_Rest_Amazon Web Services_Aws Cognito - Fatal编程技术网

C# AWS Cogntio:注册/登录后如何在.Net中发出身份验证请求

C# AWS Cogntio:注册/登录后如何在.Net中发出身份验证请求,c#,asp.net-mvc,rest,amazon-web-services,aws-cognito,C#,Asp.net Mvc,Rest,Amazon Web Services,Aws Cognito,使用AWS SDK for.Net,我可以使用 AmazonCognitoIdentityProviderClient provider = new AmazonCognitoIdentityProviderClient(new Amazon.Runtime.AnonymousAWSCredentials(), RegionEndpoint.USEast1); SignUpRequest signUpRequest = new SignUpRequest() {

使用AWS SDK for.Net,我可以使用

AmazonCognitoIdentityProviderClient provider = new AmazonCognitoIdentityProviderClient(new Amazon.Runtime.AnonymousAWSCredentials(), RegionEndpoint.USEast1);
SignUpRequest signUpRequest = new SignUpRequest()
        {
            ClientId = CLIENTAPP_ID,
            Password = user.Password,
            Username = user.Username
        };

await provider.SignUpAsync(signUpRequest);
注册后,我想验证用户和登录,并重定向到一些授权页面。使用以下代码,我可以获得身份验证令牌

CognitoUserPool userPool = new CognitoUserPool(this.POOL_ID, this.CLIENTAPP_ID, provider);
CognitoUser user = new CognitoUser(username, this.CLIENTAPP_ID, userPool, provider);

InitiateSrpAuthRequest authRequest = new InitiateSrpAuthRequest()
  {
    Password = password
  };

AuthFlowResponse authResponse = await user.StartWithSrpAuthAsync(authRequest).ConfigureAwait(false);
 if (authResponse.AuthenticationResult != null)
 {
  // Here i can see authResponse.AuthenticationResult.AccessToken
}
但是现在对于下一个对GetUserAttributes或DeleteUser的请求,我如何使用返回的用户令牌呢? 我看到有
userPool.getCurrentUser()但这在.NETSDK中不可用,我认为是在JSSDK中

那么,在注册/登录后,如何使用.Net SDK或REST Api调用发出经过身份验证的请求,以执行各种其他操作,如UpdateAttributes或DeleteUser等


请建议

在调用StartWithSrPautAsync成功返回后,您可以使用
用户
对象并调用
GetCognitoAWSCredentials

CognitoAWSCredentials credentials =
    user.GetCognitoAWSCredentials("identityPoolID", RegionEndpoint.<Your_Identity_Pool_Region>);
您还可以拨打电话联系用户:

string accessToken = authResponse.AuthenticationResult.AccessToken;

Task<GetUserResponse> responseTask =
    provider.GetUserAsync(new GetUserRequest
    {
        AccessToken = accessToken
    });

GetUserResponse responseObject = await responseTask;
string accessToken=authResponse.AuthenticationResult.accessToken;
任务响应任务=
GetUserAsync(新的GetUserRequest
{
AccessToken=AccessToken
});
GetUserResponse responseObject=等待响应任务;
一些参考资料:

  • 在页面内搜索
    GetCognitoAWSCredentials
string accessToken = authResponse.AuthenticationResult.AccessToken;

Task<GetUserResponse> responseTask =
    provider.GetUserAsync(new GetUserRequest
    {
        AccessToken = accessToken
    });

GetUserResponse responseObject = await responseTask;