Esempio n. 1
0
        public ActionResult ChangePassword(ChangePasswordModel model, int siteId)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    PortalSetting portalSetting = this.portalSettingMgr.GetPortalSetting(siteId);
                    SecurityService.SecurityService securityService = new SecurityService.SecurityService();
                    securityService.Url = ServiceURLHelper.ReplaceServiceUrl(securityService.Url, portalSetting.SIServerAddress, portalSetting.SIPort.ToString());
                    if (string.IsNullOrWhiteSpace(model.OldPassword))
                    {
                        throw new BusinessException(" 旧密码不能为空. ");
                    }
                    securityService.ChangePassword(model.UserCode, model.OldPassword,model.NewPassword);
                    User user = this.securityMgr.GetUser(model.UserCode);
                    Session.Add(WebConstants.UserSessionKey, user);
                    string userToken = securityService.VerifyUserPasswordAndGetUserToken(user.Code, model.NewPassword);

                    if (!string.IsNullOrWhiteSpace(userToken))
                    {
                        return Redirect("http://" + portalSetting.WebServerAddress + ":" + portalSetting.WebPort + (string.IsNullOrWhiteSpace(portalSetting.WebVirtualPath) ? "" : ("/" + portalSetting.WebVirtualPath)) + "/Account/TokenLogin?userName="******"&userToken=" + userToken);
                    }
                }
                catch (BusinessException ex)
                {
                    SaveBusinessExceptionMessage(ex);
                }
                catch (SoapException ex)
                {
                    SaveErrorMessage(ex.Actor);
                    //SaveBusinessExceptionMessage(ex);
                }
                catch(Exception ex)
                {
                    SaveErrorMessage(ex.Message);
                    //SaveBusinessExceptionMessage(ex);
                }
            }
            return View(model);
        }