【发布时间】:2021-12-30 10:04:32
【问题描述】:
我在 C# 中使用了名为 ws-cognito-dot-net-desktop-app 的 aws-samples 示例,并在 Windows PC 应用程序中使用了 WPF: p>
aws-cognito-dot-net-desktop-app
它运行良好,并且在 Cognito 中正确注册了用户。
现在,我将相同的代码用于带有 C# 的 Android 应用程序。
要注册用户,请执行以下操作:
bool success = await helper.SignUpUser(etUserName.Text, etPasswordUser.Text, etEmailUser.Text, etPhoneUser.Text);
SignUpUser如下:
internal async Task <bool> SignUpUser (string username, string password, string email, string phonenumber)
{
Amazon.CognitoIdentityProvider.AmazonCognitoIdentityProviderClient provider =
new Amazon.CognitoIdentityProvider.AmazonCognitoIdentityProviderClient(new
Amazon.Runtime.AnonymousAWSCredentials());
SignUpRequest signUpRequest = new SignUpRequest();
....
}
但是在这部分,当涉及到创建提供者时,代码会冻结:
不会发生异常或其他类型的错误。
有没有办法用 Visual Studio 找出发生了什么?
欢迎任何意见或建议。
更新
我调用SignUpUser的方式是这样的:
private async void clickCreateUser(object o, EventArgs e)
{
...
try
{
CognitoHelper helper = new CognitoHelper();
bool success = await helper.SignUpUser(etUserName.Text, etPasswordUser.Text, etEmailUser.Text, etPhoneUser.Text);
...
}
catch (Exception ex)
{
Android.Widget.Toast.MakeText(Application.Context, "Error: " + ex.Message, Android.Widget.ToastLength.Long).Show();
}
}
更新2
我有一个 Xamarin 的示例。此链接的形式:
在查看代码并查看提供程序是如何创建的时,我将代码更改为如下:
Amazon.CognitoIdentityProvider.AmazonCognitoIdentityProviderClient provider = new Amazon.CognitoIdentityProvider.AmazonCognitoIdentityProviderClient(/*new Amazon.Runtime.AnonymousAWSCredentials()*/new AnonymousAWSCredentials(), RegionEndpoint.USEast1);
现在代码不会冻结并转到下一行:
我需要继续检查其余代码以确定其他可能的问题
【问题讨论】:
-
如何调用 SignUpUser 或上面的步骤?你在任何地方都用
Wait或GetAwaiter().GetResult()调用它吗? -
我异步使用了一个按钮的点击事件,我更新了问题以便为您的问题提供更多细节。
标签: c# android amazon-web-services xamarin amazon-cognito