Exemplo n.º 1
0
        public int ValidateLogonUser(int count, UserDetails userDetails, LogonUser logonUser, LogonUserSession logonUserSession)
        {
            int no_of_attempts = 0;

            int  days = 0;
            byte status;

            try
            {
                UserLogonData userLogon = new UserLogonData();

                if (count == 1)
                {
                    //   if (ds.Tables[0].Rows.Count > 0)
                    //1 => pass 2=> failed  3 =>  locked   4 => 90 days pwd expired   5 => first time login 6 => Forget pwd

                    DateTime curDate = DateTime.Now;
                    TimeSpan ts      = curDate.Date - userDetails.LastPwdChange;
                    status = userDetails.Status;


                    days = ts.Days;

                    no_of_attempts = (string.IsNullOrEmpty(userDetails.NoOfAttempts.ToString())) ? 0 : Int32.Parse(userDetails.NoOfAttempts.ToString());

                    encryptSha1 obj = new encryptSha1();

                    logonUser.TempPassword = obj.GetSHA1HashData(logonUser.Password + userDetails.UserId);
                    // logonUser.TempPassword = userDetails.DBPassword;
                    if (logonUser.TempPassword == userDetails.DBPassword)
                    {
                        logonUserSession.MENURANGE       = userDetails.MenuRange;
                        logonUserSession.USERID          = userDetails.UserId;
                        logonUserSession.CURRENTPASSWORD = userDetails.DBPassword;
                        logonUserSession.PASSWORDCOUNT   = userDetails.PasswordCount;
                        logonUserSession.STATUS          = userDetails.Status;
                        logonUserSession.FIRSTNAME       = userDetails.Firstname;
                        logonUserSession.LASTNAME        = userDetails.Lastname;
                        logonUserSession.USERROLE        = userDetails.RoleId;
                        //logonUserSession.DEPARTMENT = userDetails.DepartmentId;
                        logonUserSession.ROLENAME = userDetails.RoleName;
                        logonUserSession.ROLEID   = userDetails.RoleId;

                        SessionHelper.LogonUser = logonUserSession;
                        if (userDetails.Locked == true)
                        {
                            return(3);
                        }

                        else if (ts.Days > userDetails.PwdChangeDays)
                        {
                            //userLogon.UpdateStatus(userDetails.UserId, userDetails.Status, resource.GetResource("~/Views/Logon.cshtml", "PASS_EXPIRED"));
                            userLogon.UpdateStatus(userDetails.UserId, userDetails.Status, "Password expired");
                            logonUserSession.STATUS      = Status.PWDEXPIRED;
                            logonUserSession.EXPIREDDAYS = ts.Days.ToString();
                            SessionHelper.LogonUser      = logonUserSession;
                            return(4);
                        }
                        else if (status == Status.FIRSTLOGIN)
                        {
                            // userLogon.AddAudit(userDetails.UserId, resource.GetResource("~/Views/Logon.cshtml", "Login successfully"));
                            userLogon.AddAudit(userDetails.UserId, "Login successfully");
                            return(5);
                        }

                        else if (status == Status.FORGETPWD)
                        {
                            return(6);
                        }

                        else if (no_of_attempts <= userDetails.MaxAttemps)
                        {
                            userLogon.UpdateUserAttempts(userDetails.UserId, 0);
                            return(1);
                        }
                        else
                        {
                            return(2);
                        }
                    }
                    else
                    {
                        if (status != Status.FIRSTLOGIN)
                        {
                            if (no_of_attempts == userDetails.MaxAttemps)
                            {
                                //userLogon.UpdateLockUser(userDetails.UserId, Status.NO_OF_ATM_LOCKED, resource.GetResource("~/Views/Logon.cshtml", "USER_LOCK"));
                                userLogon.UpdateLockUser(userDetails.UserId, Status.NO_OF_ATM_LOCKED, "User locked for no of attempts");
                                logonUserSession.STATUS = Status.NO_OF_ATM_LOCKED;
                                SessionHelper.LogonUser = logonUserSession;
                                return(3);
                            }
                            else
                            {
                                no_of_attempts = ++no_of_attempts;

                                userLogon.UpdateUserAttempts(userDetails.UserId, no_of_attempts);

                                return(2);
                            }
                        }
                        else
                        {
                            userLogon.AddAudit(userDetails.UserId, "Login failed");

                            return(2);
                        }
                    }
                }
                else if (userDetails.Status == 8 && userDetails.Active == 0)
                {
                    return(8);
                }
                else
                {
                    // userLogon.UpdateAnonymsAttempts(resource.GetResource("~/Views/Logon.cshtml", "ANON_ATTEMPT"));
                    userLogon.UpdateAnonymsAttempts("Anonymous attempt");
                    return(2);
                }
            }
            catch (Exception ex)
            {
                BaseExceptionHandler.HandleException(ref ex);
            }
            return(2);
        }