Ejemplo n.º 1
0
        public void ucBtnLogin_Click(object sender, System.EventArgs e)
        {
            string dbName = (this.cboDatabase.ComboBoxData.SelectedItem as BenQGuru.eMES.Common.Config.PersistBrokerSetting).Name;

            MesEnviroment.LoginDB = dbName;
            _domainDataProvider   = ApplicationService.Login(dbName).DataProvider;
            SecurityFacade  _facade          = null;
            BaseModelFacade _basemodelFacade = null;

            try
            {
                _facade          = new SecurityFacade(DataProvider);
                _basemodelFacade = new BaseModelFacade(DataProvider);
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
                //ApplicationRun.GetInfoForm().Add(new UserControl.Message(ex));
                return;
            }

            ApplicationService.Current().DataProvider = _basemodelFacade.DataProvider;
            //缓解性能问题
            ((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)DataProvider).PersistBroker.AutoCloseConnection = false;
            ((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)DataProvider).PersistBroker.OpenConnection();
            try
            {
                #region 设置多国语言
                string language = this.ucLClanguage.ComboBoxData.SelectedItem.ToString();
                if (language == "中文简体")
                {
                    UserControl.MutiLanguages.Language = LanguageType.SimplifiedChinese;
                    ApplicationService.Current().Language = LanguageType.SimplifiedChinese;
                }
                else if (language == "中文繁體")
                {
                    UserControl.MutiLanguages.Language = LanguageType.TraditionalChinese;
                    ApplicationService.Current().Language = LanguageType.TraditionalChinese;
                }
                else if (language == "English")
                {
                    UserControl.MutiLanguages.Language = LanguageType.English;
                    ApplicationService.Current().Language = LanguageType.English;
                }

                #endregion

                if (this.ucLEUserCode.Value.Trim() == string.Empty)
                {
                    //ApplicationRun.GetInfoForm().Add(new UserControl.Message(UserControl.MessageType.Error, "$Error_User_Code_Empty"));
                    AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_User_Code_Empty"));
                    ucLEUserCode.TextFocus(false, true);
                    return;
                }

                // 未输入密码
                if (this.ucLEPassword.Value.Trim() == string.Empty)
                {
                    AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_Password_Empty"));
                    ucLEPassword.Focus();
                    return;
                }

                // 未输入资源
                if (this.ucLEResourceCode.Value.Trim() == string.Empty)
                {
                    AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_Resource_Empty"));
                    ucLEResourceCode.TextFocus(false, true);
                    return;
                }

                object[] objUserGroup = null;
                User     user         = _facade.LoginCheck(this.ucLEUserCode.Value.Trim().ToUpper(), this.ucLEPassword.Value.Trim().ToUpper(), out objUserGroup);

                // 用户名不存在
                if (user == null)
                {
                    AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_User_Not_Exist"));
                    ucLEUserCode.TextFocus(false, true);
                    return;
                }

                object obj = _basemodelFacade.GetResource(this.ucLEResourceCode.Value.Trim().ToUpper());

                if (obj == null)
                {
                    AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_Resource_Not_Exist"));
                    ucLEResourceCode.TextFocus(false, true);
                    return;
                }

                // 检查Resource权限
                bool bIsAdmin = false;
                if (objUserGroup != null)
                {
                    foreach (object o in objUserGroup)
                    {
                        if (((UserGroup)o).UserGroupType == "ADMIN")
                        {
                            bIsAdmin = true;
                            break;
                        }
                    }
                }

                if (!bIsAdmin)
                {
                    if (!_facade.CheckResourceRight(user.UserCode, this.ucLEResourceCode.Value.Trim().ToUpper()))
                    {
                        AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_No_Resource_Right"));
                        ucLEUserCode.TextFocus(false, true);
                        return;
                    }
                }

                // Add Org ID
                object org = _basemodelFacade.GetOrg(((Resource)obj).OrganizationID);
                if (org != null)
                {
                    GlobalVariables.CurrentOrganizations.Clear();
                    GlobalVariables.CurrentOrganizations.Add((Organization)org);
                }
                else
                {
                    AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_NoOrganizationOfTheResource"));
                    ucLEResourceCode.TextFocus(false, true);
                    return;
                }

                //自动更新的功能完善
                object objUpdater = ApplicationService.CheckUpdate();
                if (objUpdater != null)
                {
                    Updater upd = (BenQGuru.eMES.Web.Helper.Updater)objUpdater;
                    ApplicationService.AutoUpdate(upd.Location.Trim(), upd.LoginUser, upd.LoginPassword);
                }

                ApplicationService.Current().LoginInfo = new LoginInfo(user.UserCode, (Resource)obj, objUserGroup);

                //修改	显示用户名
                string strUserName = String.Empty;
                string strResource = String.Empty;
                if (user != null)
                {
                    strUserName = user.UserName.Trim();
                }

                if (ApplicationService.Current().LoginInfo != null)
                {
                    strResource = string.Format("{0}/{1}/{2}",
                                                ApplicationService.Current().LoginInfo.Resource.ResourceCode,
                                                ApplicationService.Current().LoginInfo.Resource.StepSequenceCode,
                                                ApplicationService.Current().LoginInfo.Resource.SegmentCode);
                }

                ApplicationService.Current().MainWindows = fmain;
                ApplicationService.Current().MainWindows.LoginVersion = UserControl.FileLog.GetLocalCSVersion(UserControl.FileLog.VersionFileName);
                ApplicationService.Current().MainWindows.LoginDateTime = DateTime.Now;
                ApplicationService.Current().MainWindows.LoginUser = strUserName;
                ApplicationService.Current().MainWindows.LoginResource = strResource;
                ApplicationService.Current().MainWindows.LoginDB = (this.cboDatabase.ComboBoxData.SelectedItem as BenQGuru.eMES.Common.Config.PersistBrokerSetting).Text;
                fmain.Flash();

                Log.ClearOldLogFiles(ConfigurationManager.AppSettings.Get("LogKeepDays"));
            }
            catch (Exception ex)
            {
                this.ShowMessage(ex);
                if (ex.Message == "$Error_Password_Not_Match")
                {
                    ucLEPassword.Focus();
                }
                else
                {
                    ucLEUserCode.TextFocus(false, true);
                }

                return;
            }
            finally
            {
                //缓解性能问题
                ((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)DataProvider).PersistBroker.OpenConnection();
                ((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)DataProvider).PersistBroker.AutoCloseConnection = true;
            }

            this.Close();
        }
Ejemplo n.º 2
0
        public void ucBtnLogin_Click(object sender, System.EventArgs e)
        {
            //added by carey.cheng on 2010-05-18 for new login mode
            string dbName = (this.cboDatabase.ComboBoxData.SelectedItem as BenQGuru.eMES.Common.Config.PersistBrokerSetting).Name;

            MesEnviroment.LoginDB = dbName;
            _domainDataProvider   = ApplicationService.Login(dbName).DataProvider;
            //end added by carey.cheng on 2010-05-18 for new login mode

            SecurityFacade  _facade          = null;
            BaseModelFacade _basemodelFacade = null;

            try
            {
                _facade          = new SecurityFacade(DataProvider);
                _basemodelFacade = new BaseModelFacade(DataProvider);
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
                ApplicationRun.GetInfoForm().Add(new UserControl.Message(ex));
                return;
            }

            ApplicationService.Current().DataProvider = _basemodelFacade.DataProvider;
            //Laws Lu,2005/10/19,新增	缓解性能问题
            ((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)DataProvider).PersistBroker.AutoCloseConnection = false;
            ((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)DataProvider).PersistBroker.OpenConnection();
            try
            {
                #region 设置多国语言
                string language = this.ucLClanguage.ComboBoxData.SelectedItem.ToString();
                if (language == "中文简体")
                {
                    UserControl.MutiLanguages.Language = LanguageType.SimplifiedChinese;
                    ApplicationService.Current().Language = LanguageType.SimplifiedChinese;
                }
                else if (language == "中文繁體")
                {
                    UserControl.MutiLanguages.Language = LanguageType.TraditionalChinese;
                    ApplicationService.Current().Language = LanguageType.TraditionalChinese;
                }
                else if (language == "English")
                {
                    UserControl.MutiLanguages.Language = LanguageType.English;
                    ApplicationService.Current().Language = LanguageType.English;
                }

                #endregion

                if (this.ucLEUserCode.Value.Trim() == string.Empty)
                {
                    //ApplicationRun.GetInfoForm().Add(new UserControl.Message(UserControl.MessageType.Error, "$Error_User_Code_Empty"));
                    AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_User_Code_Empty"));
                    ucLEUserCode.TextFocus(false, true);
                    return;
                }

                // 未输入密码
                if (this.ucLEPassword.Value.Trim() == string.Empty)
                {
                    AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_Password_Empty"));
                    ucLEPassword.Focus();
                    return;
                }

                // 未输入资源
                if (this.ucLEResourceCode.Value.Trim() == string.Empty)
                {
                    AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_Resource_Empty"));
                    ucLEResourceCode.TextFocus(false, true);
                    return;
                }

                object[] objUserGroup = null;
                User     user         = _facade.LoginCheck(this.ucLEUserCode.Value.Trim().ToUpper(), this.ucLEPassword.Value.Trim().ToUpper(), out objUserGroup);

                // 用户名不存在
                if (user == null)
                {
                    AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_User_Not_Exist"));
                    ucLEUserCode.TextFocus(false, true);
                    return;
                }

                object obj = _basemodelFacade.GetResource(this.ucLEResourceCode.Value.Trim().ToUpper());

                if (obj == null)
                {
                    AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_Resource_Not_Exist"));
                    ucLEResourceCode.TextFocus(false, true);
                    return;
                }

                // 检查Resource权限
                //Laws Lu,2005/08/29,修改	Admin组权限,允许Pass
                //				object[] objUserGroup = (new UserFacade(this._domainDataProvider)).GetUserGroupofUser(user.UserCode);

                bool bIsAdmin = false;
                if (objUserGroup != null)
                {
                    foreach (object o in objUserGroup)
                    {
                        if (((UserGroup)o).UserGroupType == "ADMIN")
                        {
                            bIsAdmin = true;
                            break;
                        }
                    }
                }

                if (!bIsAdmin)
                {
                    if (!_facade.CheckResourceRight(user.UserCode, this.ucLEResourceCode.Value.Trim().ToUpper()))
                    {
                        AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_No_Resource_Right"));
                        ucLEUserCode.TextFocus(false, true);
                        return;
                    }
                }

                // Added By Hi1/Venus.Feng on 20080629 for Hisense Version : Add Org ID
                object org = _basemodelFacade.GetOrg(((Resource)obj).OrganizationID);
                if (org != null)
                {
                    GlobalVariables.CurrentOrganizations.Clear();
                    GlobalVariables.CurrentOrganizations.Add((Organization)org);
                }
                else
                {
                    AlertLoginMessage(new UserControl.Message(UserControl.MessageType.Error, "$Error_NoOrganizationOfTheResource"));
                    ucLEResourceCode.TextFocus(false, true);
                    return;
                }
                // End

                //Laws Lu,2006/08/04 修改	自动更新的功能完善
                object objUpdater = ApplicationService.CheckUpdate();
                if (objUpdater != null)
                {
                    Updater upd = (BenQGuru.eMES.Web.Helper.Updater)objUpdater;
                    ApplicationService.AutoUpdate(upd.Location.Trim(), upd.LoginUser, upd.LoginPassword);
                }
                //				//Laws Lu,2005/08/22,新增	版本更新
                //				object objUpdater = FormatHelper.GetCsVersion(_basemodelFacade.DataProvider);
                //
                //				string strVersion = UserControl.FileLog.GetLocalCSVersion(UserControl.FileLog.VersionFileName);
                //				if (objUpdater != null && strVersion != ((BenQGuru.eMES.Web.Helper.Updater)objUpdater) .CSVersion.Trim())
                //				{
                //					Updater upd = (BenQGuru.eMES.Web.Helper.Updater)objUpdater;
                //					ApplicationService.AutoUpdate(upd.Location.Trim(),upd.LoginUser,upd.LoginPassword);
                //				}
                //End Laws Lu

                ApplicationService.Current().LoginInfo = new LoginInfo(user.UserCode, (Resource)obj, objUserGroup);

                //Laws Lu,2005/09/07,修改	显示用户名
                string strUserName = String.Empty;
                string strResource = String.Empty;

                //object objUser = new UserFacade(_domainDataProvider).GetUser(ApplicationService.Current().LoginInfo.UserCode);

                if (user != null)
                {
                    strUserName = user.UserName.Trim();
                }
                //marked by carey.cheng on 2010-05-20 for new login mode
                //strUserName = strUserName + "  " + UserControl.MutiLanguages.ParserString("menu_Wellcome");

                ApplicationRun.GetInfoForm().Add(strUserName + "  " + UserControl.MutiLanguages.ParserString("menu_Wellcome"));

                if (ApplicationService.Current().LoginInfo != null)
                {
                    strResource = string.Format("{0}/{1}/{2}",
                                                ApplicationService.Current().LoginInfo.Resource.ResourceCode,
                                                ApplicationService.Current().LoginInfo.Resource.StepSequenceCode,
                                                ApplicationService.Current().LoginInfo.Resource.SegmentCode);
                }
                //End Laws Lu
                //added by carey.cheng on 2010-05-20 for muti db support
                ApplicationService.Current().MainWindows = this.MdiParent as BenQGuru.eMES.Client.FMain;
                //end added by carey.cheng on 2010-05-20 for muti db support
                ApplicationService.Current().MainWindows.LoginVersion = UserControl.FileLog.GetLocalCSVersion(UserControl.FileLog.VersionFileName);
                ApplicationService.Current().MainWindows.LoginDateTime = DateTime.Now;

                ApplicationService.Current().MainWindows.LoginUser = strUserName;
                ApplicationService.Current().MainWindows.LoginResource = strResource;
                ApplicationService.Current().MainWindows.LoginDB = (this.cboDatabase.ComboBoxData.SelectedItem as BenQGuru.eMES.Common.Config.PersistBrokerSetting).Text;
                //ApplicationService.Current().MainWindows.BackgroundImage=
                ApplicationRun.GetQtyForm().Close();

                ((BenQGuru.eMES.Client.FMain) this.MdiParent).Flash();

                Log.ClearOldLogFiles(ConfigurationManager.AppSettings.Get("LogKeepDays"));
            }
            catch (Exception ex)
            {
                this.ShowMessage(ex);
                if (ex.Message == "$Error_Password_Not_Match")
                {
                    ucLEPassword.Focus();
                }
                else
                {
                    ucLEUserCode.TextFocus(false, true);
                }

                return;
            }
            finally
            {
                //Laws Lu,2006/12/29,新增	缓解性能问题
                ((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)DataProvider).PersistBroker.OpenConnection();
                ((BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider)DataProvider).PersistBroker.AutoCloseConnection = true;
            }

            this.Close();
        }