How to use cognito authentication in winforms code example
Example 1: cognito authentication in AWS using C#
. . .
using Amazon.CognitoIdentityProvider;
using Amazon.CognitoIdentityProvider.Model;
public class CognitoUserStore : IUserStore<CognitoUser>,
IUserLockoutStore<CognitoUser, string>,
IUserTwoFactorStore<CognitoUser, string>
{
private readonly AmazonCognitoIdentityProviderClient _client =
new AmazonCognitoIdentityProviderClient();
private readonly string _clientId = ConfigurationManager.AppSettings["CLIENT_ID"];
private readonly string _poolId = ConfigurationManager.AppSettings["USERPOOL_ID"];
. . .
}
Example 2: cognito authentication in AWS using C#
. . .
using Amazon.CognitoIdentityProvider;
using Amazon.CognitoIdentityProvider.Model;
public class CognitoUserManager : UserManager<CognitoUser>
{
private readonly AmazonCognitoIdentityProviderClient _client =
new AmazonCognitoIdentityProviderClient();
private readonly string _clientId = ConfigurationManager.AppSettings["CLIENT_ID"];
private readonly string _poolId = ConfigurationManager.AppSettings["USERPOOL_ID"];
public CognitoUserManager(IUserStore<CognitoUser> store)
: base(store)
{
}
. . .
public override Task<bool> CheckPasswordAsync(CognitoUser user, string password)
{
return CheckPasswordAsync(user.UserName, password);
}
private async Task<bool> CheckPasswordAsync(string userName, string password)
{
try
{
var authReq = new AdminInitiateAuthRequest
{
UserPoolId = ConfigurationManager.AppSettings["USERPOOL_ID"],
ClientId = ConfigurationManager.AppSettings["CLIENT_ID"],
AuthFlow = AuthFlowType.ADMIN_NO_SRP_AUTH
};
authReq.AuthParameters.Add("USERNAME", userName);
authReq.AuthParameters.Add("PASSWORD", password);
AdminInitiateAuthResponse authResp = await _client.AdminInitiateAuthAsync(authReq);
return true;
}
catch
{
return false;
}
}
. . .
}