Ejemplo n.º 1
0
        internal void SendMailPassword(User currentUser)
        {
            KeyValue kvActiveStatus = new KeyValueBL().GetKeyValueByIntCode("UserStatus", "Active");
            KeyValue kvTemporarilyInactiveStatus = new KeyValueBL().GetKeyValueByIntCode("UserStatus", "TemporarilyInactive");

            Person person   = null;
            string password = string.Empty;

            if (currentUser.idStatus == kvActiveStatus.idKeyValue)
            {
                person   = new PersonBL().GetPersonByPersonID(currentUser.idPerson.ToString());
                password = ETEMModel.Helpers.BaseHelper.Decrypt(System.Web.HttpUtility.UrlDecode(currentUser.Password));
            }
            else if (currentUser.idStatus == kvTemporarilyInactiveStatus.idKeyValue)
            {
                person   = new PersonBL().GetPersonByPersonID(currentUser.idAltPerson.ToString());
                password = ETEMModel.Helpers.BaseHelper.Decrypt(System.Web.HttpUtility.UrlDecode(currentUser.AltPassword));
            }
            else
            {
                return;
            }



            CommonBL commonBL = new CommonBL();

            CallContext callContext = new CallContext();

            if (callContext.ListKvParams.Where(w => w.Key == ETEMEnums.AppSettings.MailServer.ToString()).Count() == 0)
            {
                callContext.ListKvParams.Add(new KeyValuePair <string, object>(ETEMEnums.AppSettings.MailServer.ToString(),
                                                                               commonBL.GetSettingByCode(ETEMEnums.AppSettings.MailServer).SettingValue));
            }
            if (callContext.ListKvParams.Where(w => w.Key == ETEMEnums.AppSettings.MailServerPort.ToString()).Count() == 0)
            {
                callContext.ListKvParams.Add(new KeyValuePair <string, object>(ETEMEnums.AppSettings.MailServerPort.ToString(),
                                                                               commonBL.GetSettingByCode(ETEMEnums.AppSettings.MailServerPort).SettingValue));
            }
            if (callContext.ListKvParams.Where(w => w.Key == ETEMEnums.AppSettings.MailFromPassword.ToString()).Count() == 0)
            {
                callContext.ListKvParams.Add(new KeyValuePair <string, object>(ETEMEnums.AppSettings.MailFromPassword.ToString(),
                                                                               commonBL.GetSettingByCode(ETEMEnums.AppSettings.MailFromPassword).SettingValue));
            }



            string body = string.Format(BaseHelper.GetCaptionString("Entity_User_Send_Password_Body"),
                                        person.TwoNamesPlusTitle,
                                        currentUser.UserName,
                                        password
                                        );

            commonBL.SendMailAction(
                commonBL.GetSettingByCode(ETEMEnums.AppSettings.DefaultEmail).SettingValue,
                person.EMail,
                BaseHelper.GetCaptionString("Entity_User_Send_Password_Subject"),
                body,
                "Системен e-mail", new List <string>(), callContext);
        }
Ejemplo n.º 2
0
        internal void DisableUserAccountByPersonID(int idPerson)
        {
            List <User> listUser        = this.dbContext.Users.Where(u => u.idPerson == idPerson).ToList();
            KeyValue    kvStatusDisable = new KeyValueBL().GetKeyValueByIntCode("UserStatus", "Inactive");

            foreach (User user in listUser)
            {
                user.idStatus = kvStatusDisable.idKeyValue;
                EntitySave <User>(user, new CallContext());
            }
        }
Ejemplo n.º 3
0
        public CallContext Login(string userName, string Password, CallContext inputContext)
        {
            this.RequestMeasure.PageName = "Login";

            CallContext outputContext = new CallContext();

            User user = dbContext.Users.Where(u => u.UserName == userName).FirstOrDefault();

            if (user != null)
            {
                KeyValue status = dbContext.KeyValues.Where(k => k.idKeyValue == user.idStatus).FirstOrDefault();

                if (status == null)
                {
                    outputContext.EntityID   = Constants.INVALID_ID_STRING;
                    outputContext.ResultCode = ETEMEnums.ResultEnum.Error;
                    outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Unsuccessful");
                }
                else
                {
                    if (status.KeyValueIntCode == "Active")
                    {
                        KeyValue kvCheckDomainYes = new KeyValueBL().GetKeyValueByIntCode("YES_NO", "Yes");

                        if (kvCheckDomainYes.idKeyValue == user.idCheckDomain)
                        {
                            string domainPart = new SettingBL().GetSettingByCode(ETEMEnums.AppSettings.DomainName.ToString()).SettingValue;

                            string         qualifiedUserName = domainPart + "\\" + userName;
                            string         serverName        = domainPart;
                            DirectoryEntry entry             = new DirectoryEntry("LDAP://" + serverName,
                                                                                  qualifiedUserName, Password);

                            try
                            {
                                DirectorySearcher searcher = new DirectorySearcher(entry);

                                string       qryFilterFormat = String.Format("(&(objectClass=user)(objectCategory=person)(sAMAccountName={0}))", userName);
                                SearchResult result          = null;

                                List <DomainUserInfo> userInfo = new List <DomainUserInfo>();
                                DomainUserInfo        objuser  = new DomainUserInfo();


                                searcher.Filter = qryFilterFormat;
                                SearchResultCollection results = searcher.FindAll();
                                result = (results.Count != 0) ? results[0] : null;

                                if (result != null)
                                {
                                    objuser.ShortName   = (string)result.Properties["sAMAccountName"][0];
                                    objuser.DisplayName = (string)result.Properties["displayname"][0];

                                    outputContext.EntityID   = user.idUser.ToString();
                                    outputContext.ResultCode = ETEMEnums.ResultEnum.Success;
                                    outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Successful");
                                }
                            }
                            catch (Exception ex)
                            {
                                outputContext.EntityID   = Constants.INVALID_ID_STRING;
                                outputContext.ResultCode = ETEMEnums.ResultEnum.Warning;
                                outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Unsuccessful");

                                BaseHelper.Log(ex.Message);
                            }
                        }
                        else
                        {
                            string tmpPassword = ETEMModel.Helpers.BaseHelper.Encrypt(Password);

                            if (user.Password == tmpPassword)
                            {
                                outputContext.EntityID   = user.idUser.ToString();
                                outputContext.ResultCode = ETEMEnums.ResultEnum.Success;
                                outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Successful");
                            }
                            else
                            {
                                outputContext.EntityID   = Constants.INVALID_ID_STRING;
                                outputContext.ResultCode = ETEMEnums.ResultEnum.Warning;
                                outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Unsuccessful");
                            }
                        }
                    }
                    else if (status.KeyValueIntCode == "TemporarilyInactive")
                    {
                        string tmpPassword = ETEMModel.Helpers.BaseHelper.Encrypt(Password);


                        if (user.AltPassword == tmpPassword)
                        {
                            outputContext.EntityID   = user.idUser.ToString();
                            outputContext.ResultCode = ETEMEnums.ResultEnum.Success;
                            outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Successful");
                        }
                        else
                        {
                            outputContext.EntityID   = Constants.INVALID_ID_STRING;
                            outputContext.ResultCode = ETEMEnums.ResultEnum.Warning;
                            outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Unsuccessful");
                        }
                    }
                    else
                    {
                        outputContext.EntityID   = Constants.INVALID_ID_STRING;
                        outputContext.ResultCode = ETEMEnums.ResultEnum.Warning;
                        outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Unsuccessful");
                    }
                }
            }
            else
            {
                user                     = new User();
                user.UserName            = userName;
                user.idUser              = Constants.INVALID_ID;
                outputContext.EntityID   = Constants.INVALID_ID_STRING;
                outputContext.ResultCode = ETEMEnums.ResultEnum.Warning;
                outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Unsuccessful");
            }

            MakeEventLog(outputContext, user);

            BaseHelper.Log(this.RequestMeasure.ToString());

            return(outputContext);
        }