예제 #1
0
파일: UserData.cs 프로젝트: lzbgt/scada-1
        /// <summary>
        /// Выполнить вход пользователя в систему
        /// </summary>
        /// <remarks>Если пароль равен null, то он не проверяется</remarks>
        public bool Login(string login, string password, out string errMsg)
        {
            login = login == null ? "" : login.Trim();
            int roleID;

            if (AppData.MainData.CheckUser(login, password, password != null, out roleID, out errMsg))
            {
                UserLogin = login;
                Role      = ServerComm.GetRole(roleID);
                RoleID    = roleID;
                RoleName  = AppData.MainData.GetRoleName(RoleID);
                UserID    = AppData.MainData.GetUserID(login);

                LoggedOn  = true;
                LogOnDT   = DateTime.Now;
                rightList = AppData.MainData.GetRightList(roleID);
                InitViewSetRightList(ViewSettings.ViewSetList);

                AppData.Log.WriteAction((password == null ?
                                         (Localization.UseRussian ? "Вход в систему без пароля: " : "Login without a password: "******"Вход в систему: " : "Login: "******" (" + RoleName + ")", Log.ActTypes.Action);
                return(true);
            }
            else
            {
                Logout();

                string err = login == "" ? errMsg : login + " - " + errMsg;
                AppData.Log.WriteAction((Localization.UseRussian ? "Неудачная попытка входа в систему: " :
                                         "Unsuccessful login attempt: ") + err, Log.ActTypes.Error);
                return(false);
            }
        }