C# 创建帐户状态为“的AWS Cognito用户”;“确认”;而且没有电子邮件地址
如何使用c#创建帐户状态已确认的Cognito用户?创建用户后,帐户状态显示强制更改密码。另一件事是我需要创建没有电子邮件地址的用户C# 创建帐户状态为“的AWS Cognito用户”;“确认”;而且没有电子邮件地址,c#,aws-sdk,amazon-cognito,C#,Aws Sdk,Amazon Cognito,如何使用c#创建帐户状态已确认的Cognito用户?创建用户后,帐户状态显示强制更改密码。另一件事是我需要创建没有电子邮件地址的用户 AmazonCognitoIdentityProviderClient cognitoProvider = new AmazonCognitoIdentityProviderClient(region); string userName = "user"; string tempPassword = "Temp@3434"; s
AmazonCognitoIdentityProviderClient cognitoProvider =
new AmazonCognitoIdentityProviderClient(region);
string userName = "user";
string tempPassword = "Temp@3434";
string newPassword = "RealPass@2019";
AdminCreateUserRequest adminUserCreateRequest = new AdminCreateUserRequest()
{
UserPoolId = poolId,
Username = userName,
TemporaryPassword = tempPassword
};
AdminCreateUserResponse signUpResponse = await cognitoProvider.AdminCreateUserAsync(adminUserCreateRequest);
管理员初始化请求
Dictionary<string, string> initialParams = new Dictionary<string, string>();
initialParams.Add("USERNAME", userName);
initialParams.Add("PASSWORD", tempPassword);
AdminInitiateAuthRequest initialRequest = new AdminInitiateAuthRequest()
{
AuthFlow = AuthFlowType.ADMIN_NO_SRP_AUTH,
AuthParameters = initialParams,
ClientId = appClientId_tenantApi,
UserPoolId = poolId
};
AdminInitiateAuthResponse resInitAuth = await cognitoProvider.AdminInitiateAuthAsync(initialRequest);
Dictionary initialParams=new Dictionary();
initialParams.Add(“用户名”,USERNAME);
initialParams.Add(“密码”,tempPassword);
AdminInitiateAuthRequest initialRequest=新的AdminInitiateAuthRequest()
{
AuthFlow=AuthFlowType.ADMIN\u NO\u SRP\u AUTH,
AuthParameters=初始参数,
ClientId=appClientId\u tenantApi,
UserPoolId=poolId
};
AdminInitiateAuthResponse ResiniteAuth=等待cognitoProvider.AdminInitiateAuthAsync(initialRequest);
InitiateAuthRresponse将电子邮件作为必需属性。
{[requiredAttributes,[“userAttributes.email”]}
但文件没有这样说
对于ADMIN\u NO\u SRP\u AUTH:USERNAME(必需)、SECRET\u HASH(如果应用程序客户端配置了客户端SECRET)、PASSWORD(必需)、DEVICE\u KEY
管理员回应挑战
var authParameters = new Dictionary<string, string>();
authParameters.Add("USERNAME", userName);
authParameters.Add("NEW_PASSWORD", newPassword);
AdminRespondToAuthChallengeRequest adminAuthRequest = new AdminRespondToAuthChallengeRequest()
{
UserPoolId = poolId,
ClientId = appClientId_tenantApi,
ChallengeName = ChallengeNameType.NEW_PASSWORD_REQUIRED,
ChallengeResponses = authParameters,
Session = session
};
cognitoProvider.AdminRespondToAuthChallengeAsync(adminAuthRequest);
var authParameters=new Dictionary();
添加(“用户名”,用户名);
添加(“新密码”,新密码);
AdminRespondToAuthChallengeRequest adminAuthRequest=新AdminRespondToAuthChallengeRequest()
{
UserPoolId=poolId,
ClientId=appClientId\u tenantApi,
ChallengeName=ChallengeNameType.NEW\u需要密码,
ChallengeResponses=authParameters,
会话=会话
};
cognitoProvider.AdminRespondToAuthChallengeAsync(adminAuthRequest);
我想我可能错过了Cognito中的一些用户设置,以避免发送电子邮件。有没有人有类似的经历?或者这不可能创建没有电子邮件的用户
var signup = await cognitoClient.SignUpAsync(new SignUpRequest
{
Username = person.Username,
ClientId = cognitoOptions.ClientId,
Password = person.IdNumber,
});
var confirm = await cognitoClient.AdminConfirmSignUpAsync(new AdminConfirmSignUpRequest
{
Username = person.Username,
UserPoolId = cognitoOptions.UserPoolId
});