public void PasswordChange(BaseUser model, string newPassword)
        {
            var bl = BLLFactory.Create <IBaseUserBL>();

            model.UserPWD = newPassword;
            bl.Update(model);
        }
        private static void ConfigAuthSession(BaseUser user, WeatherClientType clientType)
        {
            // clean all existing Cache
            //Mobizone.TSIC.Cache.DataCache.RemoveAllCacheBySession();

            var session       = SessionFactory.Create <IBLSessionPersisiter>();
            var clientSession = SessionFactory.Create <IClientSessionPersisiter>();

            session.RemoveSession();
            clientSession.RemoveSession();

            IBaseUserBL bl = BLLFactory.Create <IBaseUserBL>();

            session.UserID       = user.ID;
            session.BaseEmployee = user.BASE_EMPLOYEE;
            session.ProdType     = 1; //登录成功默认PND

            //var division = BLLFactory.Create<IBaseDictBL>().GetItemNameByCached(BaseDictType.DictTypeDivision,user.BaseEmployee.DIVISION);
            //if(division == BaseDictType.DivisionTypeMND) {
            //  session.ProdType = 2;
            //}

            clientSession.ClientType = clientType;

            //session.UserType = user.UserType;

            session.Roles = ExpendRole(bl.GetUserRoles(user.ID)); // load all the role

            //// Data Auth
            //var orgBL = BLLFactory.Create<IBaseOrgBL>();
            ISet <decimal> authOrg = new HashSet <decimal>();

            //var splitDate = DateTime.Parse("2012-03-07 03:00:00");
            //if(user.Updated == null || user.Updated < splitDate) {
            //  // 老式的ETMS授权
            //  authOrg = orgBL.FilterAbtCityOrgByCached(user.OrgAuth);
            //} else {
            //  authOrg = orgBL.ExpendOrgToAbtCityByCached(user.OrgAuth);
            //}
            //var userOrg = user.BaseEmployee.OrgID;
            //if(null != userOrg) {
            //  authOrg.Add(userOrg.Value);

            //  //展开到城市一级
            //  session.DataCenterCityAuth = orgBL.ExpendOrgToCenterCityByCached(userOrg.Value);
            //}

            //// Data Auth: PGS 自动授权 所有PG所在雅培城市
            //if(session.Roles.Contains(WeatherRole.PGM_PGS)) {
            //  var empBL = BLLFactory.Create<IBaseEmployeeBL>();
            //  var orgs = empBL.GetChildAbtCityBind(session.BaseEmployee.ID);
            //  authOrg.AddAll(orgs);
            //}

            session.DataOrgAuth = authOrg;
        }
Exemple #3
0
        /// <summary>
        /// 准备计算数据
        /// 加载一些外部数据,如商店名
        /// </summary>
        protected override void PrepareCompute()
        {
            base.PrepareCompute(); log.Info("PrepareCompute:");
            cityBL     = BLLFactory.Create <IWeatherCityBL>(UnitOfWork);
            forecastBL = BLLFactory.Create <IWeatherDailyForecastBL>(UnitOfWork);
            CityList   = cityBL.GetAllCity().Select(i => i.CityCode).Take(2000).ToList();

            //将当前日期以后的数据无效
            DateTime dt = System.DateTime.Now.Date;

            DisableByDate(dt);
        }
        /*
         * public bool SetAuthSessionInWeb(string username, string password) {
         * var bl = BLLFactory.Create<IBaseUserBL>();
         * var user = bl.GetUserInWeb(username, password);
         * if (null == user) {
         *  return false;
         * }
         * ConfigAuthSession(user);
         * return true;
         * }
         *
         *
         * public bool SetAuthSessionInWap(string username, string password) {
         * var bl = BLLFactory.Create<IBaseUserBL>();
         * var user = bl.GetUserInWap(username, password);
         * if (null == user) {
         *  return false;
         * }
         * ConfigAuthSession(user);
         * return true;
         * }*/


        public bool SetAuthSession(string username, string password, WeatherClientType clientType, string[] loginOnlyIfRole = null, string[] extrRoles = null)
        {
            var bl   = BLLFactory.Create <IBaseUserBL>();
            var user = bl.GetUserInWeb(username, password);

            if (null == user)
            {
                return(false);
            }
            ConfigAuthSession(user, clientType);

            var session = SessionFactory.Create <IBLSessionPersisiter>();

            if (loginOnlyIfRole != null)
            {
                var identity = new WeatherIdentity(session.UserID);
                if (loginOnlyIfRole.All(role => !this.UserInRole(identity, role)))
                {
                    RemoveSession();
                    return(false);
                }
            }

            //string type = UserLog.LoginClientTypeWap;
            //switch (clientType) {
            //  case WeatherClientType.Wap:
            //    type = UserLog.LoginClientTypeWap;
            //    break;
            //  case WeatherClientType.Web:
            //    type = UserLog.LoginClientTypeWeb;
            //    break;
            //  case WeatherClientType.iPhone:
            //    type = UserLog.LoginClientTypeiPhone;
            //    break;
            //  case WeatherClientType.Android:
            //    type = UserLog.LoginClientTypeAndroid;
            //    break;
            //}

            if (extrRoles != null)
            {
                session.Roles.AddAll(extrRoles);
            }

            //Bus.ServiceBus.Publish(new Bus.Messages.LoginMsg() {
            //  EmpID = (int)session.BaseEmployee.ID,
            //  Time = Util.RPCNow,
            //  ClientType = type,
            //});

            return(true);
        }
Exemple #5
0
        public bool HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            if (!IsWeChat)
            {
                filterContext.Result = RedirectToAction("Login", "WapAccount", new { area = "Wap" });
                return(false);
            }
            else
            {
                var    Flag_MockUserId = ConfigurationManager.AppSettings[BaseDictType.MockUserId];
                string CorpID          = ConfigurationManager.AppSettings[BaseDictType.WeChatCorpId];
                string Host            = ConfigurationManager.AppSettings[BaseDictType.WeChatCorpHost];
                string test            = null;// ConfigurationManager.AppSettings[BaseDictType.CRMTest];
                if (!string.IsNullOrEmpty(Flag_MockUserId) && !string.IsNullOrEmpty(test))
                {
                    AuthorizationService.SetAuthSession(int.Parse(Flag_MockUserId));
                    return(true);
                }
                log.Info("sessionID:" + Session.SessionID);

                var wechat  = new WeChatOAuth();
                var empCode = wechat.TryGetOpenIdFromOAuthState(CorpID, Session.SessionID);
                log.Info("empCode=" + empCode);
                if (!string.IsNullOrEmpty(empCode))
                {
                    var empBL = BLLFactory.Create <IBaseEmployeeBL>();
                    var emp   = empBL.GetEmployeeByCode(empCode);
                    if (emp == null)
                    {
                        return(false);
                    }
                    var      userBL = BLLFactory.Create <IBaseUserBL>();
                    BaseUser user   = null;
                    if (!string.IsNullOrEmpty(Flag_MockUserId))
                    {
                        user = userBL.GetUser(int.Parse(Flag_MockUserId));
                    }
                    else
                    {
                        user = userBL.GetUser(emp.ID);
                    }
                    AuthorizationService.SetAuthSession((int)user.ID);
                    filterContext.Result = Redirect(Request.Url.ToString());
                    return(true);
                }

                var url = wechat.GetOAuthRedirectUrl(Session.SessionID, Request.Url.ToString(), Host, CorpID);
                filterContext.Result = Redirect(url);
                return(true);
            }
        }
        public bool SetAuthSession(int userID, WeatherClientType clientType = WeatherClientType.Wap, string[] extrRoles = null)
        {
            var bl   = BLLFactory.Create <IBaseUserBL>();
            var user = bl.GetUserByID(userID);

            if (null == user)
            {
                return(false);
            }
            ConfigAuthSession(user, clientType);
            if (extrRoles != null)
            {
                var session = SessionFactory.Create <IBLSessionPersisiter>();
                session.Roles.AddAll(extrRoles);
            }

            return(true);
        }
        public ActionResult Login(LoginModel model)
        {
            if (!ValidationCodeGenerator.ValidateCode(model.ValidationCode))
            {
                ModelState.AddModelError("ValidationCode", "验证码错误");
            }
            if (ModelState.IsValid)
            {
                var u = BLLFactory.Create <IBaseUserBL>();

                //var user = sqldb.BASE_USER.Where(i => i.State == "1" && i.UserAccount == model.Account && i.UserPWD == model.PassWord).FirstOrDefault();
                var user = u.GetUserInWeb(model.Account, model.PassWord);
                if (user != null)
                {
                    if (!string.IsNullOrEmpty(model.RememberMe))
                    {
                        var account = Response.Cookies["RememberMe"];
                        if (account == null)
                        {
                            account = new HttpCookie("RememberMe");
                        }
                        account.Value   = model.Account;
                        account.Expires = DateTime.Now.AddMonths(1);
                        Response.SetCookie(account);
                    }
                    else
                    {
                        var account = Response.Cookies["RememberMe"];
                        if (account != null)
                        {
                            account.Expires = DateTime.Now.AddMonths(-1);
                            Response.SetCookie(account);
                        }
                    }
                    if (u.SetAuthSession(model.Account, model.PassWord, WeatherClientType.Web))
                    {
                        return(RedirectToAction("index", "Dashboard", new { Area = "Admin" }));
                    }
                }
                ModelState.AddModelError("PassWord", "用户名或密码错误");
            }
            return(View(model));
        }
        public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
        {
            var controller = actionContext.ControllerContext.Controller as TSICApiController;

            if (null == controller)
            {
                return;
            }
            controller.AuthorizationService = new TSICAuthorizationService();
            var session = SessionFactory.Create <IBLSessionPersisiter>();

            // 尝试使用Token登录
            //if (Configuration.IsDevMode) {
            if (actionContext.Request.Headers.Contains(TSICConstant.HeaderToken))
            {
                string tokenId = actionContext.Request.Headers.GetValues(TSICConstant.HeaderToken).FirstOrDefault();
                var    tokenBL = BLLFactory.Create <IUserTokenBL>();
                var    token   = tokenBL.GetToken(tokenId);
                // 如果用户不一致,以新用户登录
                if (token != null && token.UserID != session.UserID)
                {
                    if (controller.AuthorizationService.SetAuthSession(token.UserID, (TSICClientType)token.ClientType))
                    {
                        var clientSession = SessionFactory.Create <IClientSessionPersisiter>();
                        clientSession.ClientVersion = token.ClientVersion;
                    }
                }
            }
            //}

            var user = new TSICPrincipal(
                new TSICIdentity(session.UserID), controller.AuthorizationService);

            System.Threading.Thread.CurrentPrincipal = user;
            HttpContext.Current.User = user;

            base.OnAuthorization(actionContext);
        }
        public ActionResult MyLogin(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var bll   = BLLFactory.Create <I房屋租赁表BL>();
            var query = bll.QueryAll();
            var user  = BLLFactory.Create <IBASE_USERBL>().GetByAccount(model.name, model.Password);

            if (user != null)
            {
                BLSessionPersisiter session = new BLSessionPersisiter();
                session.UserID   = user.Emp_ID.Value;
                session.UserName = user.UserAccount;

                return(RedirectToLocal(returnUrl));
            }
            else
            {
                ModelState.AddModelError("", "无效的登录尝试。");
                return(View(model));
            }
        }
        public BaseUser GetPasswordByUserAccountAndMobilePhone(string username, string empName, string mobilephone)
        {
            var bl = BLLFactory.Create <IBaseUserBL>();

            return(bl.GetPasswordByUserAccountAndMobilePhone(username, empName, mobilephone));
        }
        public BaseUser ValidUser(string username, string password, string userType)
        {
            var bl = BLLFactory.Create <IBaseUserBL>();

            return(bl.GetUserByType(username, password, userType));
        }
 /// <summary>
 /// 准备计算数据
 /// 加载一些外部数据,如商店名
 /// </summary>
 protected override void PrepareCompute()
 {
     base.PrepareCompute();
     bl          = BLLFactory.Create <IWeatherCityBL>(UnitOfWork);
     AllCityDict = bl.GetAllCity().ToDictionary(i => i.CityCode.Trim(), i => i);
 }
Exemple #13
0
        public static decimal?ParseEmpType(string type)
        {
            var rst = BLLFactory.Create <IBaseDictBL>().GetItemIDByCached(BaseDictType.DictTypeEmpType, type);

            return(rst >= 0 ? (decimal?)rst : null);
        }
Exemple #14
0
 public static string EmpTypeToString(decimal?empType)
 {
     return(BLLFactory.Create <IBaseDictBL>().GetItemNameByCached(BaseDictType.DictTypeEmpType, empType ?? -1));
 }