/// <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); } }
/// <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); }