예제 #1
0
        /// <summary>
        ///变更
        /// </summary>
        /// <param name="model">模型</param>
        /// <param name="Pics">图片集</param>
        private ActionResult AreaEditChange(AreaDbModel model)
        {
            var updatemodel = ReadOnlyRepository.GetForUpdate(e => e.Code == model.Code);

            if (updatemodel == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }


            updatemodel = CloneAreaModel(updatemodel, model);

            Repository.Update(updatemodel);
            //需要级联改动(市辖区、县)
            var isedit = string.IsNullOrEmpty(updatemodel.CityLevel);

            if (isedit)
            {
                return(RedirectToAction("Index", new { Message = "已编辑" }));
            }
            var isprovince = updatemodel.CityLevel == "1";
            var iscity     = updatemodel.CityLevel == "2";

            if (isprovince)
            {
                var cityscodes = AreaService.GetCitysByProvinceCode(updatemodel.Code).Select(e => e.Code).ToList();
                if (cityscodes.Count == 0)
                {
                    return(RedirectToAction("Index", new { Message = "已编辑" }));
                }
                foreach (var citycode in cityscodes)
                {
                    var updatecitymodel = ReadOnlyRepository.GetForUpdate(e => e.Code == citycode);
                    updatecitymodel.FullName = updatemodel.FullName + "," + updatecitymodel.Name;

                    Repository.Update(updatecitymodel);

                    var countryscode = AreaService.GetCountyByCityCode(updatecitymodel.Code).Select(e => e.Code).ToList();
                    if (countryscode.Count > 0)
                    {
                        foreach (var countrycode in countryscode)
                        {
                            var updatecountrymodel = ReadOnlyRepository.GetForUpdate(e => e.Code == countrycode);
                            updatecountrymodel.FullName = updatecitymodel.FullName + "," + updatecountrymodel.Name;
                            Repository.Update(updatecountrymodel);
                        }
                    }
                }
            }
            else if (iscity)
            {
                var countryscode = AreaService.GetCountyByCityCode(updatemodel.Code).Select(e => e.Code).ToList();
                if (countryscode.Count == 0)
                {
                    return(RedirectToAction("Index", new { Message = "已编辑" }));
                }
                foreach (var countrycode in countryscode)
                {
                    var updatecountrymodel = ReadOnlyRepository.GetForUpdate(e => e.Code == countrycode);
                    updatecountrymodel.FullName = updatemodel.FullName + "," + updatecountrymodel.Name;
                    Repository.Update(updatecountrymodel);
                }
            }

            return(RedirectToAction("Index", new { Message = "已编辑" }));
        }
예제 #2
0
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {            //通过微信登录
            var Isweixinlogin = model.IsWeiXinLogin == "1" && !string.IsNullOrEmpty(model.WeixinUser);

            ViewBag.IsWeiXinAuth = !string.IsNullOrEmpty(model.WeixinUser);
            returnUrl            = !string.IsNullOrWhiteSpace(returnUrl) ? returnUrl : (string.IsNullOrEmpty(model.Stateurl) ? "~/Manage/index" : model.Stateurl);
            if (Isweixinlogin)
            {
                ViewBag.WeiXinUser = model.WeixinUser;
                ViewBag.WeiXinUrl  = returnUrl;
            }
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            #region 密码安全监测
            var isDetectionOn = PasswordStrengthDetectionService.IsDetectionOn();
            if (isDetectionOn)
            {
                var ismatch = PasswordStrengthDetectionService.IsMatch(model.Password.Trim());
                if (ismatch)
                {
                    Session["IsPasswordStronger"] = true;
                }
                else
                {
                    Session["IsPasswordStronger"] = false;
                }
            }
            #endregion
            var result = await SignInHelper.PasswordSignIn(model.UserName, model.Password, model.RememberMe, shouldLockout : false);


            //var user = await UserManager.FindByNameAsync(model.UserName);
            //var roles = await UserManager.GetRolesAsync(user.Id);
            log4net.LogManager.GetLogger("RollingLog").Info(model.UserName + " Log in: " + result.ToString());
            switch (result)
            {
            case MvcBackend.App_Start.SignInStatus.Success:
                Session["MyMenu"] = null;
                if (Isweixinlogin)
                {
                    var user = ReadOnlyRepository.GetForUpdate(e => e.UserName == model.UserName.Trim());
                    //if (user == null) return Redirect(WeiXinAuthHtml.Replace("[url]", returnUrl));

                    if (string.IsNullOrEmpty(user.WeiXinAuthId))
                    {
                        user.WeiXinAuthId = model.WeixinUser;
                        Repository.Update(user);
                    }
                    else
                    {
                        var weixinuser = ReadOnlyRepository.Get(e => e.WeiXinAuthId == model.WeixinUser);
                        if (weixinuser != null && weixinuser.UserName != model.UserName)
                        {
                            ModelState.AddModelError("", "微信企业号已经认证过。");
                            return(View(model));
                        }
                    }
                }
                return(RedirectToLocal(returnUrl));

            case MvcBackend.App_Start.SignInStatus.LockedOut:
                return(View("Lockout"));

            case MvcBackend.App_Start.SignInStatus.RequiresTwoFactorAuthentication:
                return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl }));

            case MvcBackend.App_Start.SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "登陆名或密码错误。");
                return(View(model));
            }
        }