Esempio n. 1
0
        private void LogonSuccessful()
        {
            try
            {
                //Set the status for the Main form to know what's going on
                status = LogOnStatus.LogOn;

                PosApplication.Instance.BusinessLogic.LogonLogoffSystem.ConcludeSuccessfulLogOn();

                lblUser.Text          = string.Empty;
                operatorId            = string.Empty;
                password              = string.Empty;
                operatorName          = string.Empty;
                operatorNameOnReceipt = string.Empty;

                dlgResult = DialogResult.OK;

                this.Close();
            }
            catch (Exception ex)
            {
                using (frmError errorForm = new LSRetailPosis.POSProcesses.frmError(ex.Message, ex))
                {
                    POSFormsManager.ShowPOSForm(errorForm);
                }
            }
        }
Esempio n. 2
0
 private void LogOnChangeStatus(LogOnStatus pStatus)
 {
     if (this.InvokeRequired)
     {
         LogOnChangeStatusCallBack a = new LogOnChangeStatusCallBack(LogOnChangeStatus);
         this.Invoke(a, new object[] { pStatus });
     }
     else
     {
         Status = pStatus;
     }
 }
Esempio n. 3
0
        static void Main(string[] args)
        {
            Application app    = new Application();
            LogOnStatus status = app.LogOn("TRAINING", "Eugeni.Tseitlin", "sp8hxj4v3a");

            if (status != LogOnStatus.LoggedOn)
            {
                throw new UnauthorizedAccessException();
            }

            CustomIndexer.ClassificationInitializer.InitializeSpecifications(app);
        }
Esempio n. 4
0
        private void btnOKChange_Click(object sender, EventArgs e)
        {
            Status = LogOnStatus.CHANGING_PASSWORD;
            if (txtNewPassword.Text != txtNewPasswordConfirm.Text || txtNewPIN.Text != txtNewPINConfirm.Text)
            {
                MessageBox.Show("Passwords and PINs must match", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Status = LogOnStatus.CHANGE_PASSWORD;
                return;
            }
            Values.gDatos.context_info = MasterPassword.MasterBytes;
            Values.gDatos.Connect();
            // Call the SP for Password/PIN change
            var _SP = new SP(Values.gDatos, "pLogOnUser");

            _SP.AddControlParameter("User", txtUser);
            _SP.AddParameterValue("Password", txtPassword.Text);
            _SP.AddParameterValue("Origin", "LOGON_CS");
            _SP.AddParameterValue("NewPassword", txtNewPassword.Text);
            _SP.AddParameterValue("NewPIN", txtNewPIN.Text);
            try
            {
                _SP.Execute();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                //txtPassword.Text = "";
                Status = LogOnStatus.CHANGE_PASSWORD;
                return;
            }
            Values.gDatos.Close();
            if (_SP.LastMsg.Substring(0, 2) != "OK")
            {
                CTWin.MsgError(_SP.LastMsg);
                return;
            }
            MessageBox.Show("Password and PIN changed OK", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            PanelName.Text  = Values.FullName;
            Values.User     = txtUser.Text;
            Values.Password = txtPassword.Text = txtNewPassword.Text;
            LogOnChangeStatus(previousStatus);
            txtUser.Text     = Values.User;
            txtPassword.Text = Values.Password;
            btnOk.PerformClick();

            if (Status == LogOnStatus.INIT)
            {
                txtUser.Text     = Values.User;
                txtPassword.Text = Values.Password;
                btnOk.PerformClick();
            }
        }
Esempio n. 5
0
        private static void LogIn(Application app)
        {
            string      connection = ConfigurationSettings.AppSettings["AdamRegistrationName"];
            string      user       = ConfigurationSettings.AppSettings["AdamAdminUserName"];
            string      pass       = ConfigurationSettings.AppSettings["AdamAdminPassword"];
            LogOnStatus status     = app.LogOn(connection, user, pass);

            if (status == LogOnStatus.LoggedOn)
            {
                Console.WriteLine("LogOn complite");
            }
            else
            {
                Console.WriteLine(status);
            }
        }
Esempio n. 6
0
 public void LoginStatusChange(UserIdentity user, LogOnStatus newLoginStatus)
 {
     switch (newLoginStatus)
     {
         case LogOnStatus.LogOn:
             _list.Add(user);
             break;
         case LogOnStatus.LogOff:
             //int index = _list. FindIndex(value => value.Name == user.Name);
             //if (index >= 0)
             //    _list.RemoveAt(index);
             _list.Remove(user);
             break;
         default:
             throw new ApplicationException("Ненене Дэвид Блейн ненене");
     }
 }
Esempio n. 7
0
        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (logonMode == LogonModes.Numpad)
            {
                try
                {
                    status = LogOnStatus.Exit;

                    if (UserHasAccessRights(PosisOperations.ApplicationExit))
                    {
                        //status = LogonStatus.Exit;
                        dlgResult = DialogResult.OK;
                        Close();
                    }
                    else
                    {
                        status = LogOnStatus.None;
                    }
                }
                catch (Exception)
                {
                    status = LogOnStatus.None;
                }
            }
            else
            {
                if (UserHasAccessRights(PosisOperations.ApplicationExit))
                {
                    status    = LogOnStatus.Exit;
                    dlgResult = DialogResult.OK;
                    Close();
                }
                else
                {
                    status = LogOnStatus.None;
                }
            }
        }
Esempio n. 8
0
        /// <summary>
        /// Initiate logOn flow and returns the status.
        /// </summary>
        /// <returns>Log on status.</returns>
        public LogOnStatus LogOnOperator()
        {
            LogOnStatus logonStatus = LogOnStatus.None;

            // Automation Logon (logon using command line user/password -SU<operatorId> -SP<password>).
            if (!string.IsNullOrWhiteSpace(ApplicationSettings.StartUser) && !string.IsNullOrWhiteSpace(ApplicationSettings.StartPassword))
            {
                if (Login.LogOnUser(true, ApplicationSettings.StartUser, string.Empty, string.Empty, ApplicationSettings.StartPassword))
                {
                    logonStatus = LogOnStatus.LogOn;
                }
            }

            // If not auto logged on, then display the UI.
            if (logonStatus != LogOnStatus.LogOn)
            {
                // Invoke Trigger
                foreach (var trigger in Application.Triggers.ApplicationTriggers)
                {
                    trigger.LoginWindowVisible();
                }

                LogOnConfirmation logOnConfirmation = new LogOnConfirmation();

                InteractionRequestedEventArgs request = new InteractionRequestedEventArgs(logOnConfirmation, () =>
                {
                    if (logOnConfirmation.Confirmed)
                    {
                        logonStatus = (LogOnStatus)logOnConfirmation.LogOnStatus;
                    }
                }
                                                                                          );

                Application.Services.Interaction.InteractionRequest(request);
            }

            return(logonStatus);
        }
Esempio n. 9
0
 private void shutdownToolStripMenuItem_Click(object sender, EventArgs e)
 {
     status = LogOnStatus.Shutdown;
     if (logonMode == LogonModes.Numpad)
     {
         try
         {
             if (UserHasAccessRights(PosisOperations.ShutDownComputer))
             {
                 //status = LogonStatus.Shutdown;
                 dlgResult = DialogResult.OK;
                 Close();
             }
             else
             {
                 status = LogOnStatus.None;
             }
         }
         catch (Exception)
         {
             status = LogOnStatus.None;
         }
     }
     else
     {
         if (UserHasAccessRights(PosisOperations.ShutDownComputer))
         {
             status    = LogOnStatus.Shutdown;
             dlgResult = DialogResult.OK;
             Close();
         }
         else
         {
             status = LogOnStatus.None;
         }
     }
 }
Esempio n. 10
0
        private void LogonGridUser()
        {
            try
            {
                //if nothing is selected display an error message
                if (grvUserData.SelectedRowsCount == 0)
                {
                    PosApplication.Instance.Services.Dialog.ShowMessage(31, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                //Get the selected user id
                DataRow row = grvUserData.GetDataRow(grvUserData.GetSelectedRows()[0]);
                operatorId   = row["STAFFID"].ToString();
                operatorName = row["NAME"].ToString();

                LogonData        logonData     = new LogonData(ApplicationSettings.Database.LocalConnection, ApplicationSettings.Database.DATAAREAID);
                EF.PosPermission posPermission = logonData.GetUserPosPermission(ApplicationSettings.Terminal.StoreId, operatorId);

                if (!string.IsNullOrWhiteSpace(operatorId))
                {
                    //This is to assign the operator culture ONCE such that it is available throughout all translation attempts
                    LSRetailPosis.DataAccess.Language lang = new Language(ApplicationSettings.Database.LocalConnection, ApplicationSettings.Database.DATAAREAID);

                    // Set operator culture if found, otherwise default to terminal culture
                    string opCultNam = lang.GetOperatorCultureName(ApplicationSettings.Terminal.StoreId, operatorId);
                    if (!string.IsNullOrEmpty(opCultNam))
                    {
                        ApplicationSettings.Terminal.OperatorCultureName = opCultNam;
                    }
                }


                if (posPermission == null)
                {
                    // No permisison or position
                    using (frmMessage message = new frmMessage(1004))
                    {
                        POSFormsManager.ShowPOSForm(message);
                    }

                    return;
                }

                //display the numpad to get the password
                using (LSRetailPosis.POSProcesses.frmInputNumpad frmNumPad = new LSRetailPosis.POSProcesses.frmInputNumpad())
                {
                    frmNumPad.EntryTypes = NumpadEntryTypes.Password;
                    frmNumPad.PromptText = ApplicationLocalizer.Language.Translate(2379); //"Password";

                    bool logonWorked = false;

                    while (logonWorked == false)
                    {
                        //if button OK / Enter was hit
                        POSFormsManager.ShowPOSForm(frmNumPad);
                        if (frmNumPad.DialogResult == DialogResult.OK)
                        {
                            password = frmNumPad.InputText;

                            if (logonWorked = Login.LogOnUser(true, operatorId, operatorName, operatorName, password))
                            {
                                //Set privilege
                                ApplicationSettings.Terminal.TerminalOperator.MaxLineReturnAmount  = PosApplication.Instance.BusinessLogic.Utility.ToDecimal(posPermission.MaxLineReturnAmount);
                                ApplicationSettings.Terminal.TerminalOperator.MaxTotalReturnAmount = PosApplication.Instance.BusinessLogic.Utility.ToDecimal(posPermission.MaxTotalReturnAmount);
                                ApplicationSettings.Terminal.TerminalOperator.UserIsManager        = PosApplication.Instance.BusinessLogic.Utility.ToBool(posPermission.ManagerPrivileges);
                                ApplicationSettings.Terminal.TerminalOperator.UserIsInventoryUser  = PosApplication.Instance.BusinessLogic.Utility.ToBool(posPermission.UseHandheld);

                                LogonSuccessful();
                            }
                        }
                        else
                        {
                            logonWorked = true;
                            status      = LogOnStatus.None;
                        }

                        frmNumPad.TryAgain();
                    }
                }

                if (status == LogOnStatus.LogOn)
                {
                    dlgResult = DialogResult.OK;
                    Close();
                }
            }
            catch (Exception x)
            {
                // The user hasn't entered all the information needed.
                LSRetailPosis.ApplicationExceptionHandler.HandleException(this.ToString(), x);
                throw new PosisException(34, x);
            }
        }
Esempio n. 11
0
        protected override void OnLoad(EventArgs e)
        {
            if (!this.DesignMode)
            {
                this.HideHelpIcon();

                this.Bounds = new Rectangle(
                    ApplicationSettings.MainWindowLeft,
                    ApplicationSettings.MainWindowTop,
                    ApplicationSettings.MainWindowWidth,
                    ApplicationSettings.MainWindowHeight);

                this.Text = ApplicationSettings.ApplicationTitle;

                LoadBackgroundImage();

                ActivateTraining(ApplicationSettings.Terminal.TrainingMode);

                status = LogOnStatus.None;

                if (Functions.ShowStaffListAtLogon)
                {
                    logonMode = LogonModes.UserList;
                }
                else
                {
                    logonMode = LogonModes.Numpad;
                }

                if (logonMode == LogonModes.UserList)
                {
                    GetUserInformation();
                    grdUsers.Visible = true;
                    tableLayoutPanel2.SetColumnSpan(grdUsers, 3);
                    lblUser.Visible = false;
                }
                else
                {
                    grdUsers.Visible = false;
                    lblUser.Visible  = true;

                    this.numPad.SuspendLayout();
                    numPad.Visible   = true;
                    numPad.EntryType = NumpadEntryTypes.Barcode;
                    this.numPad.ResumeLayout();

                    PosApplication.Instance.Services.Peripherals.LogOnDevice.DataReceived += new LogOnDeviceEventHandler(OnLogOnDevice_DataReceived);
                    PosApplication.Instance.Services.Peripherals.LogOnDevice.BeginVerifyCapture();
                }

                // Set visibility of training mode
                trainingToolStripMenuItem.Visible = toolStripSeparator4.Visible = !ApplicationSettings.Terminal.HideTrainingMode;

                TranslateLabels();
                ClearVariables();

                UpdateTime();
            }

            base.OnLoad(e);
        }
Esempio n. 12
0
        private async void btnOk_Click(object sender, EventArgs e)
        {
//#if DEBUG
//            noXML = true;
//#endif
            if (noXML)
            {
                XMLSystemState = XDocument.Load(LOCAL_PATH + "systems.xml");
            }
            else
            {
                await Values.getSystemVersions(ShareServerList[Values.COD3]);
            }
            previousStatus = Status;
            if (Status == LogOnStatus.INIT)
            {
                LogOnChangeStatus(LogOnStatus.CONNECTING);
                SqlParameter _flags;
                SqlParameter _fullName;
                var          _SP = new SP(Values.gDatos, "pLogOnUser");
                _SP.AddControlParameter("User", txtUser);
                _SP.AddControlParameter("Password", txtPassword);
                _SP.AddParameterValue("Origin", "LOGON_CS");
                _SP.AssignOutputParameterContainer("flags", out _flags);
                _SP.AssignOutputParameterContainer("FullName", out _fullName);
                try
                {
                    _SP.Execute();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txtPassword.Text = "";
                    Status           = LogOnStatus.INIT;
                    return;
                }
                //txtUser.Text = _SP.ReturnValues()["User"].ToString();
                Values.userFlags = _flags.Value.ToString().Split('|').Where(x => x != "").ToList();
                Values.FullName  = _fullName.Value.ToString();
                PanelName.Text   = Values.FullName;
                Values.DBServerList.ServerList.ForEach(x => { x.User = txtUser.Text; x.Password = txtPassword.Text; });
                var          _SPQuote = new SP(Values.gDatos, "pGetQOTD");
                SqlParameter _quote;
                _SPQuote.AssignOutputParameterContainer("quote", out _quote);
                try
                {
                    _SPQuote.Execute();
                    PanelQOTD.Text = _quote.Value.ToString();
                }
                catch
                {
                    PanelQOTD.Text = "";
                }

                if (_SP.LastMsg == "OK/CHANGE")
                {
                    this.Status = LogOnStatus.CHANGE_PASSWORD;
                    CTWin.MsgError("Your password has expired, please change it.");
                    return;
                }
                Values.User     = txtUser.Text;
                Values.Password = _SP.ReturnValues()["@Password"].ToString();// txtPassword.Text;
                FillApps();
                DrawListApps();
                if (_update)
                {
                    await CheckUpdatableApps();
                }
                else
                {
                    Values.AppList.ToList().ForEach(x => x.SetStatus(AppBotStatus.UPDATED));
                }
                Values.AppList.ToList().ForEach(x => x.ShowStatus());
                //while (Values.AppList.CheckingApps.Count != 0)
                //{
                //    System.Threading.Thread.Sleep(500);
                //}

                /*
                 * if (Values.AppList.PendingApps.Count != 0)
                 * {
                 *  //var maxThreads = Values.AppList.PendingApps.Count > Values.MaxNumThreads ? Values.MaxNumThreads : Values.AppList.PendingApps.Count;
                 *  var maxThreads = Values.UpdateList.PendingCount > Values.MaxNumThreads ? Values.MaxNumThreads : Values.UpdateList.PendingCount;
                 *  for (var i = 0; i < maxThreads; i++)
                 *  {
                 *      Values.ActiveThreads++;
                 *      var _thread = new cUpdaterThread(Values.debugBox, Values.ActiveThreads);
                 *      this.UpdatingThreads.Add(_thread);
                 *      new Thread(async () => await _thread.Process()).Start();
                 *      await Task.Delay(200);
                 *  }
                 * }
                 */
                var UpdaterTask = new Updater(Values.UpdateList, Values.MaxNumThreads);
                UpdaterTask.Callback      += UpdaterTask_Callback;
                UpdaterTask.ErrorCallback += UpdaterTask_ErrorCallback;
                await UpdaterTask.Start();

                LogOnChangeStatus(LogOnStatus.CONNECTED);
            }
            else
            {
                LogOnChangeStatus(LogOnStatus.INIT);
            }
        }
Esempio n. 13
0
        public JsonResult Index(LoginViewModel model, string requestUrl)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    using (TestEntities db = new TestEntities())
                    {
                        LogOnStatus status      = LogOnStatus.Failure;
                        var         currentDate = DateTime.Now;
                        var         user        = db.Users.Where(x => x.Account == model.Account).SingleOrDefault();
                        if (user != null)
                        {
                            if (user.PasswordHash == model.Password)
                            {
                                //成功的流程 寫入登入時間
                                status                       = LogOnStatus.Successful;
                                user.DateLastLogin           = currentDate;
                                db.Entry <Users>(user).State = EntityState.Modified;

                                db.SaveChanges();
                            }
                            else
                            {
                                status = LogOnStatus.FailPassword;
                            }
                        }
                        else
                        {
                            status = LogOnStatus.NotExist;
                        }
                        switch (status)
                        {
                        case LogOnStatus.Successful:
                            //note:
                            AuthenticationTicketUserData userInfo = new AuthenticationTicketUserData
                            {
                                UserId = user.Account,
                                Name   = user.Name
                            };

                            //當都沒有權限 則會用GUEST
                            List <string> roles = new List <string>();

                            if (user.Roles.Count == 0)
                            {
                                roles.Add("Guest");
                            }
                            else
                            {
                                roles = user.Roles.Select(x => x.RoleID).ToList();
                            }

                            userInfo.Roles = roles;
                            IFormsAuthentication _formAuthentication = new DefaultFormsAuthentication();
                            //IFormsAuthentication _formAuthentication = DependencyResolver.Current.GetService<IFormsAuthentication>();
                            _formAuthentication.SetAuthCookie(this.HttpContext, new FormsAuthenticationTicket(1, userInfo.UserId, DateTime.Now, DateTime.Now.Add(FormsAuthentication.Timeout), false, userInfo.ToString()));

                            var cookies = HttpContext.Request.Cookies.AllKeys;
                            if (cookies.Contains(SiteConst.RememberCookie))
                            {
                                string rem_cookie = HttpContext.Request.Cookies[SiteConst.RememberCookie].Values["account"];
                                //記住帳號實做
                                if (model.RememberMe)
                                {
                                    if (string.IsNullOrEmpty(rem_cookie))
                                    {
                                        HttpCookie cookie = new HttpCookie(SiteConst.RememberCookie);
                                        cookie["account"] = model.Account;
                                        cookie.Expires    = DateTime.Now.AddYears(100);
                                        Response.Cookies.Add(cookie);
                                    }
                                    else
                                    {
                                        if (rem_cookie != model.Account)
                                        {
                                            this.Request.Cookies[SiteConst.RememberCookie].Expires = DateTime.Now.AddHours(-1);
                                            Response.Cookies.Add(Request.Cookies[SiteConst.RememberCookie]);
                                            HttpCookie cookie = new HttpCookie(SiteConst.RememberCookie);
                                            cookie["account"] = model.Account;
                                            cookie.Expires    = DateTime.Now.AddYears(100);
                                            Response.Cookies.Add(cookie);
                                        }
                                    }
                                }
                                else
                                {
                                    if (!string.IsNullOrEmpty(rem_cookie))
                                    {
                                        this.Request.Cookies[SiteConst.RememberCookie].Expires = DateTime.Now.AddHours(-1);
                                        Response.Cookies.Add(Request.Cookies[SiteConst.RememberCookie]);
                                    }
                                }
                            }
                            else
                            {
                                HttpCookie cookie = new HttpCookie(SiteConst.RememberCookie);
                                cookie["account"] = model.Account;
                                cookie.Expires    = DateTime.Now.AddYears(100);
                                Response.Cookies.Add(cookie);
                            }

                            var returnUrlBack = requestUrl;

                            if (!Url.IsLocalUrl(requestUrl))
                            {
                                returnUrlBack = Url.Action("Index", "Home");
                            }

                            return(Json(new { success = true, returnUrl = returnUrlBack }));

                        case LogOnStatus.Disabled:
                            ModelState.AddModelError("", "該帳號已被停權");
                            break;

                        case LogOnStatus.Failure:
                            ModelState.AddModelError("", "帳號或密碼錯誤");
                            break;

                        case LogOnStatus.UnActived:
                            ModelState.AddModelError("", "帳號尚未啟用");
                            break;

                        default:
                            ModelState.AddModelError("", "帳號或密碼錯誤");
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                _logger.Info("Index - Error{0}", ex.Message);
            }
            finally
            {
                _logger.Info("Index - end");
            }


            // If we got this far, something failed
            return(Json(new { errors = ModelState.SelectMany(x => x.Value.Errors.Select(error => error.ErrorMessage)) }));
        }
Esempio n. 14
0
        public ActionResult LogOn(LogOnUserModel user)
        {
            ViewBag.EnterpriseName     = this.service.SysConfig.GetSysConfig(Model.Enums.SysConfigEnum.EnterpriseName);
            ViewBag.EnableLogOnCaptcha = IsEnableLogOnCaptcha();
            if (ViewBag.EnableLogOnCaptcha)
            {
                if (Session["CaptchaCode"] == null || user.CaptchaCode == null || Session["CaptchaCode"].ToString() != user.CaptchaCode.ToLower())
                {
                    ModelState.AddModelError("CaptchaCode", Lang.Account_LogOn_CaptchaCodeIncorrect);
                    Session["CaptchaCode"] = null;
                    return(View());
                }
            }

            ModelState.Remove("CaptchaCode");
            if (ModelState.IsValid)
            {
                LogOnStatus status = UserLogOn(user);
                switch (status)
                {
                case LogOnStatus.Success:

                    HttpCookie cookie = new HttpCookie("UserName", HttpUtility.UrlEncode(user.UserName));
                    cookie.Expires = DateTime.Now.AddYears(1);
                    Response.Cookies.Add(cookie);
                    this.service.SysLog.Log(Model.Enums.SysLogType.LoginSuccess, user.UserName, null, null);


                    //if (_LicenseInfo.DaysLeftInTrial <= 30) //zjy
                    //{
                    //    TempData["LicenseInfo"] =
                    //        string.Format(Lang.License_Expire_CountDown
                    //        , _LicenseInfo.Edition
                    //        , _LicenseInfo.DaysLeftInTrial);
                    //}


                    return(RedirectToAction("Index", "Home"));

                case LogOnStatus.UserNotFound:
                    ModelState.AddModelError("UserName", Lang.Account_LogOn_UserNotFound);
                    break;

                case LogOnStatus.UserLocked:
                    ModelState.AddModelError("UserName", Lang.Account_LogOn_UserIsLocked);
                    break;

                case LogOnStatus.PasswordError:
                    this.service.SysLog.Log(Model.Enums.SysLogType.LoginPasswordError, user.UserName, user, null);
                    ModelState.AddModelError("Password", Lang.Account_LogOn_PasswordIncorrect);
                    break;

                case LogOnStatus.IPNotAllowed:
                    this.service.SysLog.Log(Model.Enums.SysLogType.LoginNotAllowedIP, user.UserName, null, null);
                    ModelState.AddModelError("form", Lang.Account_LogOn_IPNotAllowed + Request.UserHostAddress);
                    break;

                default:
                    ModelState.AddModelError("", Lang.Account_LogOn_Failed);
                    break;
                }
            }


            return(View());
        }