/// <summary> /// /// </summary> /// <returns></returns> public JsonResult LogIn(string objUser) { try { JavaScriptSerializer jSerializer = new JavaScriptSerializer(); cmUser user = jSerializer.Deserialize <cmUser>(objUser); cmSecurity niSecurity = new cmSecurity(); DataSet dsUser = new DataSet(); bool bAccess = niSecurity.LogIn(user.sUserName, user.sPassword, out dsUser, out sErrMsj); if (bAccess) { Session["userName"] = user.sUserName; Session["RoleID"] = dsUser.Tables[0].Rows[0]["RoleId"].ToString(); TempData["userName"] = user.sUserName; } return(new JsonResult() { Data = bAccess }); } catch (Exception) { return(new JsonResult() { }); } }
public static bool VerifyBackupCode(cmUser user, string code, out List <string> newCodes) { newCodes = null; bool existed = false; using (DbManager dbManager = new DbManager()) { SecondFactorBackupCodeAccessor accessor = DataAccessor.CreateInstance <SecondFactorBackupCodeAccessor>(dbManager); existed = accessor.IsCodeExist(user.ID, code); if (existed) { int count = accessor.RemoveCode(user.ID, code); if (count == 0) { newCodes = GenerateBackupCodes(user.ID, dbManager); } } } if (existed && !user.IsSecondFactorVerified) { SetSecondFactorVerified(user.ID, true); } return(existed); }
public static bool ValidateAuthCode(cmUser user, string authCode) { bool result = false; result = GoogleAuthenticator.ValidatePIN(GetSecretKey(user.SecondFactorSecretKey), authCode); if (result && !user.IsSecondFactorVerified) { SetSecondFactorVerified(user.ID, true); } return(result); }
public static SecondFactorAuthSetupCode GenerateSetupCode(cmSite site, cmUser user, SecondFactorAuthType authType, int qrCodeWidth = 250, int qrCodeHeigt = 250) { SecondFactorAuthSetupCode setupCode = null; if (authType == SecondFactorAuthType.GoogleAuthenticator) { if (string.IsNullOrWhiteSpace(user.SecondFactorSecretKey)) { user.SecondFactorSecretKey = GenerateSecretKey(user.ID); } setupCode = GoogleAuthenticator.GenerateSetupCode(site.DisplayName, user.Username, GetSecretKey(user.SecondFactorSecretKey), qrCodeWidth, qrCodeHeigt); setupCode.AuthType = SecondFactorAuthType.GoogleAuthenticator; } else if (authType == SecondFactorAuthType.GeneralAuthCode) { setupCode = new SecondFactorAuthSetupCode(); setupCode.BackupCodes = GenerateBackupCodes(user.ID); setupCode.AuthType = SecondFactorAuthType.GeneralAuthCode; } return(setupCode); }