Hi,
I am trying to consume Okta .net sdk from my C# code for basic CRUD operations which are working fine. I am running into API validation issue when I try to enrol and activate SMS factor after successful user creation.
Se my code below - (I am getting API validation error when I try to call addfactorasync)
private static IUser SendCreateUserRequestToOktaAsync()
{
try
{
var task = Task.Run(async () => await CreateUser());
task.Wait();
IUser result = task.Result;
if (!string.IsNullOrEmpty(result.Id))
{
EnrollSMSFactor(result);
}
return result;
}
catch (Exception e)
{
Console.WriteLine("User Creation failed with error :" + e.InnerException.Message);
Console.WriteLine("User Name :" + strfirstname + " " + strlastname);
LogWriter.WriteLog("User Creation failed with error :" + e.InnerException.Message);
LogWriter.WriteLog("User Name :" + strfirstname + " " + strlastname);
//LogWriter.WriteLog("User Last Name :" + strlastname);
return null;
}
}
private static void EnrollSMSFactor(IUser usr)
{
var task = Task.Run(async () => await client.UserFactors.AddFactorAsync(usr.Id, new AddCallFactorOptions() { PhoneNumber = "0474800999",PhoneExtension = "61" }));
task.Wait();
IFactor result = task.Result;
ActivateSMSFactor(usr, result);
}
private static void ActivateSMSFactor(IUser usr,IFactor factor)
{
VerifyFactorRequest req = new VerifyFactorRequest()
{
ActivationToken = factor.MfaStateTokenId,
//Answer = factor.,
//NextPassCode = ,
//PassCode = ,
TokenLifetimeSeconds = factor.TokenLifetimeSeconds };
var task = Task.Run(async () => await client.UserFactors.ActivateFactorAsync(req, usr.Id,factor.Id));
task.Wait();
IFactor result = task.Result;
}