C# AWS Cogntio:注册/登录后如何在.Net中发出身份验证请求
使用AWS SDK for.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() {
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;