/// <summary> /// Handling login authenticate event. /// </summary> /// <param name="sender">Sender.</param> /// <param name="e">Authenticate event arguments.</param> private void loginElem_Authenticate(object sender, AuthenticateEventArgs e) { if (MFAuthenticationHelper.IsMultiFactorRequiredForUser(loginElem.UserName)) { var plcPasscodeBox = loginElem.FindControl("plcPasscodeBox"); var plcLoginInputs = loginElem.FindControl("plcLoginInputs"); var txtPasscode = loginElem.FindControl("txtPasscode") as CMSTextBox; if (txtPasscode == null) { return; } if (plcPasscodeBox == null) { return; } if (plcLoginInputs == null) { return; } // Handle passcode string passcode = txtPasscode.Text; txtPasscode.Text = ""; var provider = new CMSMembershipProvider(); // Validate username and password if (plcLoginInputs.Visible) { if (provider.MFValidateCredentials(loginElem.UserName, loginElem.Password)) { // Show passcode screen plcLoginInputs.Visible = false; plcPasscodeBox.Visible = true; } } // Validate passcode else { if (provider.MFValidatePasscode(loginElem.UserName, passcode)) { e.Authenticated = true; } } } else { try { e.Authenticated = Membership.Provider.ValidateUser(loginElem.UserName, loginElem.Password); } catch (ConfigurationException ex) { EventLogProvider.LogException("LogonMiniForm", "VALIDATEUSER", ex); var provider = new CMSMembershipProvider(); e.Authenticated = provider.ValidateUser(loginElem.UserName, loginElem.Password); } } }
/// <summary> /// Handling login authenticate event. /// </summary> /// <param name="sender">Sender.</param> /// <param name="e">Authenticate event arguments.</param> private void Login1_Authenticate(object sender, AuthenticateEventArgs e) { if (MFAuthenticationHelper.IsMultiFactorRequiredForUser(Login1.UserName)) { var plcPasscodeBox = Login1.FindControl("plcPasscodeBox"); var plcLoginInputs = Login1.FindControl("plcLoginInputs"); var txtPasscode = Login1.FindControl("txtPasscode") as CMSTextBox; if (txtPasscode == null) { return; } if (plcPasscodeBox == null) { return; } if (plcLoginInputs == null) { return; } // Handle passcode string passcode = txtPasscode.Text; txtPasscode.Text = string.Empty; var provider = new CMSMembershipProvider(); // Validate username and password if (plcLoginInputs.Visible) { if (provider.MFValidateCredentials(Login1.UserName, Login1.Password)) { // Show passcode screen plcLoginInputs.Visible = false; plcPasscodeBox.Visible = true; } } // Validate passcode else { if (provider.MFValidatePasscode(Login1.UserName, passcode)) { e.Authenticated = true; } } } else { e.Authenticated = Membership.Provider.ValidateUser(Login1.UserName, Login1.Password); } }
/// <summary> /// Raises the callback event. /// </summary> public void RaiseCallbackEvent(string eventArgument) { if (eventArgument.Contains("logout")) { userIsLoggingOut = true; } else if (eventArgument.Contains("validate")) { userValidates = true; validatePassword = eventArgument.Substring(START_INDEX_FOR_PASSWORD); if (MFAuthenticationHelper.IsMultiFactorRequiredForUser(MembershipContext.AuthenticatedUser.UserName)) { userWaitingForPasscode = true; } } else if (eventArgument.Contains("validPasscode")) { userValidates = false; userWaitingForPasscode = false; passcValidates = true; validatePasscode = eventArgument.Substring(START_INDEX_FOR_PASSCODE); } else if (eventArgument.Contains("isLocked")) { userAsksForState = true; } else if (eventArgument.Contains("cancel")) { userCanceling = true; } else if (eventArgument.Contains("action")) { userAsksForState = true; SecurityHelper.LogScreenLockAction(); } // Find out when screen will be locked timeLeft = CMSPage.LastRequest + TimeSpan.FromMinutes(minutesToLock) - DateTime.Now; }