Ejemplo n.º 1
0
        /// <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()
                {
                });
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }