示例#1
0
        /// <summary>
        /// Выполнить вход пользователя в систему
        /// </summary>
        /// <remarks>Если пароль равен null, то он не проверяется</remarks>
        public bool Login(string username, string password, out string errMsg)
        {
            username = username == null ? "" : username.Trim();
            int roleID;

            AppData.Refresh();

            if (AppData.CheckUser(username, password, password != null, out roleID, out errMsg))
            {
                LoggedOn = true;
                LogonDT  = DateTime.Now;

                // заполнение свойств пользователя
                UserProps          = new UserProps();
                UserProps.UserID   = AppData.DataAccess.GetUserID(username);
                UserProps.UserName = username;
                UserProps.RoleID   = roleID;
                UserProps.RoleName = AppData.DataAccess.GetRoleName(roleID);

                if (password == null)
                {
                    AppData.Log.WriteAction(string.Format(Localization.UseRussian ?
                                                          "Вход в систему без пароля: {0} ({1}). IP-адрес: {2}" :
                                                          "Login without a password: {0} ({1}). IP address: {2}",
                                                          username, UserProps.RoleName, IpAddress));
                }
                else
                {
                    AppData.Log.WriteAction(string.Format(Localization.UseRussian ?
                                                          "Вход в систему: {0} ({1}). IP-адрес: {2}" :
                                                          "Login: {0} ({1}). IP address: {2}",
                                                          username, UserProps.RoleName, IpAddress));
                }

                UserRights userRights = new UserRights();
                userRights.Init(roleID, AppData.DataAccess);
                UserRights = userRights;

                AppData.UserMonitor.AddUser(this);
                UpdateAppDataRefs();
                RaiseOnUserLogin();

                UserMenu = new UserMenu(AppData.Log);
                UserMenu.Init(this);
                UserViews = new UserViews(AppData.Log);
                UserViews.Init(this, AppData.DataAccess);
                UserContent = new UserContent(AppData.Log);
                UserContent.Init(this, AppData.DataAccess);
                return(true);
            }
            else
            {
                Logout();
                AppData.Log.WriteError(string.Format(Localization.UseRussian ?
                                                     "Неудачная попытка входа в систему: {0}{1}. IP-адрес: {2}" :
                                                     "Unsuccessful login attempt: {0}{1}. IP address: {2}",
                                                     username == "" ? "" : username + " - ", errMsg.TrimEnd('.'), IpAddress));
                return(false);
            }
        }
示例#2
0
        /// <summary>
        /// Выполнить вход пользователя в систему
        /// </summary>
        /// <remarks>Если пароль равен null, то он не проверяется</remarks>
        public bool Login(string username, string password, out string errMsg)
        {
            username = username == null ? "" : username.Trim();
            AppData.Refresh();

            if (AppData.CheckUser(username, password, password != null, out int roleID, out errMsg))
            {
                LoggedOn = true;
                LogonDT  = DateTime.Now;

                // заполнение свойств пользователя
                UserProps = new UserProps()
                {
                    UserID   = AppData.DataAccess.GetUserID(username),
                    UserName = username,
                    RoleID   = roleID,
                    RoleName = AppData.DataAccess.GetRoleName(roleID)
                };

                if (password == null)
                {
                    AppData.Log.WriteAction(string.Format(Localization.UseRussian ?
                                                          "Вход в систему без пароля: {0} ({1}). IP-адрес: {2}" :
                                                          "Login without a password: {0} ({1}). IP address: {2}",
                                                          username, UserProps.RoleName, IpAddress));
                }
                else
                {
                    AppData.Log.WriteAction(string.Format(Localization.UseRussian ?
                                                          "Вход в систему: {0} ({1}). IP-адрес: {2}" :
                                                          "Login: {0} ({1}). IP address: {2}",
                                                          username, UserProps.RoleName, IpAddress));
                }

                UserRights userRights = new UserRights(AppData.ViewCache);
                userRights.Init(roleID, AppData.DataAccess);
                UserRights = userRights;

                AppData.UserMonitor.AddUser(this);
                StartPage = AppData.WebSettings.StartPage; // set start page by default
                UpdateAppDataRefs();
                RaiseOnUserLogin();

                UserMenu = new UserMenu(AppData.Log);
                UserMenu.Init(this);
                UserViews = new UserViews(AppData.ViewCache, AppData.Log);
                UserViews.Init(this, AppData.DataAccess);
                UserContent = new UserContent(AppData.Log);
                UserContent.Init(this, AppData.DataAccess);
                return(true);
            }