123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Transactions;
- using System.Web;
- using System.Web.Mvc;
- using System.Web.Security;
- using DotNetOpenAuth.AspNet;
- using Microsoft.Web.WebPages.OAuth;
- using WebMatrix.WebData;
- using Bowin.Common;
- using Bowin.Common.Utility;
- using EMIS.Utility.SSO;
- using EMIS.Utility;
- using EMIS.Web.Filters;
- using EMIS.Web.Models;
- using EMIS.Web.Controls;
- using EMIS.ViewModel;
- using EMIS.ViewModel.AccountManage;
- using EMIS.ViewModel.SystemView;
- using EMIS.CommonLogic.SystemServices;
- using EMIS.CommonLogic.EnrollManage.NewStudentManage;
- namespace EMIS.Web.Controllers
- {
- [Authorization]
- public class AccountController : Controller
- {
- public IUserServices UserServices { get; set; }
- public IMailVerifyServices MailVerifyServices { get; set; }
- public INewStudentEnterServices newStudentEnterServices { get; set; }
-
- /// <summary>
- ///
- /// </summary>
- /// <param name="returnUrl"></param>
- /// <returns></returns>
- [AllowAnonymous]
- public ActionResult Login(string returnUrl)
- {
- ViewBag.ReturnUrl = returnUrl;
- var model = this.GetUserCookies();
- if (model != null)
- {
- return View(model);
- }
- return View();
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="model"></param>
- /// <param name="returnUrl"></param>
- /// <returns></returns>
- [HttpPost]
- [AllowAnonymous]
- [ValidateAntiForgeryToken]
- public ActionResult Login(LogOnModel model, string returnUrl)
- {
- if (ModelState.IsValid)
- {
- try
- {
- if (model.VerifyCode != Session["code"] as string)
- {
- ModelState.AddModelError("", "请输入正确的验证码!");
- return View(model);
- }
- bool isLogin;
- try
- {
- isLogin = UserServices.Login(model.UserName, model.Password);
- }
- catch (Exception ex)
- {
- ModelState.AddModelError("", ex.Message);
- return View(model);
- }
- if (isLogin)
- {
- try
- {
- this.LoginSureccessful(model, model.UserName);
- var referrer = HttpContext.Request.UrlReferrer;
- if (referrer != null)
- {
- var referrerUrl = HttpContext.Request.UrlReferrer.GetQueryStringByPath("targetUrl");
- if (!string.IsNullOrEmpty(referrerUrl))
- {
- return Redirect(HttpContext.Server.UrlDecode(referrerUrl));
- }
- }
- return RedirectToAction("Index", "Home");
- }
- catch (Exception ex)
- {
- ModelState.AddModelError("", ex.Message);
- return View(model);
- }
- }
- else
- {
- ModelState.AddModelError("", "用户名或密码不正确请检查后重新输入!");
- this.RemoveUserCookies(model);
- return View(model);
- }
- }
- catch (Exception ex)
- {
- //this.RemoveUserCookies(model);
- //ModelState.AddModelError("", "提供的用户名或密码不正确。");
- throw ex;
- }
- }
- return View(model);
- }
- /// <summary>
- /// 河北工大
- /// </summary>
- /// <param name="returnUrl"></param>
- /// <returns></returns>
- [AllowAnonymous]
- public ActionResult HBGDLogin(string returnUrl)
- {
- ViewBag.ReturnUrl = returnUrl;
- var model = this.GetUserCookies();
- if (model != null)
- {
- return View(model);
- }
- return View();
- }
- /// <summary>
- /// 河北工大
- /// </summary>
- /// <param name="model"></param>
- /// <param name="returnUrl"></param>
- /// <returns></returns>
- [HttpPost]
- [AllowAnonymous]
- [ValidateAntiForgeryToken]
- public ActionResult HBGDLogin(LogOnModel model, string returnUrl)
- {
- if (ModelState.IsValid)
- {
- try
- {
- if (model.VerifyCode != Session["code"] as string)
- {
- ModelState.AddModelError("", "请输入正确的验证码!");
- return View(model);
- }
- bool isLogin;
- try
- {
- isLogin = UserServices.Login(model.UserName, model.Password);
- }
- catch (Exception ex)
- {
- ModelState.AddModelError("", ex.Message);
- return View(model);
- }
- if (isLogin)
- {
- try
- {
- this.LoginSureccessful(model, model.UserName);
- var referrer = HttpContext.Request.UrlReferrer;
- if (referrer != null)
- {
- var referrerUrl = HttpContext.Request.UrlReferrer.GetQueryStringByPath("targetUrl");
- if (!string.IsNullOrEmpty(referrerUrl))
- {
- return Redirect(HttpContext.Server.UrlDecode(referrerUrl));
- }
- }
- return RedirectToAction("Index", "Home");
- }
- catch (Exception ex)
- {
- ModelState.AddModelError("", ex.Message);
- return View(model);
- }
- }
- else
- {
- ModelState.AddModelError("", "用户名或密码不正确请检查后重新输入!");
- this.RemoveUserCookies(model);
- return View(model);
- }
- }
- catch (Exception ex)
- {
- //this.RemoveUserCookies(model);
- //ModelState.AddModelError("", "提供的用户名或密码不正确。");
- throw ex;
- }
- }
- return View(model);
- }
- /// <summary>
- /// 新增的登录页面
- /// </summary>
- /// <param name="returnUrl"></param>
- /// <returns></returns>
- [AllowAnonymous]
- public ActionResult NewLogin(string returnUrl)
- {
- ViewBag.ReturnUrl = returnUrl;
- var model = this.GetUserCookies();
- Session["FailCount"] = 0;
- if (model != null)
- {
- return View(model);
- }
- return View();
- }
- /// <summary>
- /// 新增的登录页面
- /// </summary>
- /// <param name="returnUrl"></param>
- /// <returns></returns>
- [HttpPost]
- [AllowAnonymous]
- [ValidateAntiForgeryToken]
- public ActionResult NewLogin(LogOnModel model, string returnUrl)
- {
- if (ModelState.IsValid)
- {
- try
- {
- int failCount = (int)Session["FailCount"];
- if (model.VerifyCode != "NoCode")
- {
- if (model.VerifyCode != Session["code"] as string)
- {
- failCount++;
- Session["FailCount"] = failCount;
- model.Session = Session;
- ModelState.AddModelError("", "请输入正确的验证码!");
- return View(model);
- }
- }
- bool isLogin;
- try
- {
- isLogin = UserServices.Login(model.UserName, model.Password);
- }
- catch (Exception ex)
- {
- ModelState.AddModelError("", ex.Message);
- return View(model);
- }
- if (isLogin)
- {
- try
- {
- this.LoginSureccessful(model, model.UserName);
- var referrer = HttpContext.Request.UrlReferrer;
- if (referrer != null)
- {
- var referrerUrl = HttpContext.Request.UrlReferrer.GetQueryStringByPath("targetUrl");
- if (!string.IsNullOrEmpty(referrerUrl))
- {
- return Redirect(HttpContext.Server.UrlDecode(referrerUrl));
- }
- }
- return RedirectToAction("Index", "Home");
- }
- catch (Exception ex)
- {
- ModelState.AddModelError("", ex.Message);
- return View(model);
- }
- }
- else
- {
- failCount++;
- //ViewBag.FailCount = failCount;
- Session["FailCount"] = failCount;
- model.Session = Session;
- //model.FailCount = failCount;
- ModelState.AddModelError("", "用户名或密码不正确请检查后重新输入!");
- //this.RemoveUserCookies(model);
- return View(model);
- }
- }
- catch (Exception ex)
- {
- //this.RemoveUserCookies(model);
- //ModelState.AddModelError("", "提供的用户名或密码不正确。");
- throw ex;
- }
- }
- return View(model);
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="returnUrl"></param>
- /// <returns></returns>
- [AllowAnonymous]
- public ActionResult GZZYLogin(string returnUrl)
- {
- ViewBag.ReturnUrl = returnUrl;
- var model = this.GetUserCookies();
- if (model != null)
- {
- return View(model);
- }
- return View();
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="model"></param>
- /// <param name="returnUrl"></param>
- /// <returns></returns>
- [HttpPost]
- [AllowAnonymous]
- [ValidateAntiForgeryToken]
- public ActionResult GZZYLogin(LogOnModel model, string returnUrl)
- {
- if (ModelState.IsValid)
- {
- try
- {
- if (model.VerifyCode != Session["code"] as string)
- {
- ModelState.AddModelError("", "请输入正确的验证码!");
- return View(model);
- }
- bool isLogin;
- try
- {
- isLogin = UserServices.Login(model.UserName, model.Password);
- }
- catch (Exception ex)
- {
- ModelState.AddModelError("", ex.Message);
- return View(model);
- }
- if (isLogin)
- {
- try
- {
- this.LoginSureccessful(model, model.UserName);
- var referrer = HttpContext.Request.UrlReferrer;
- if (referrer != null)
- {
- var referrerUrl = HttpContext.Request.UrlReferrer.GetQueryStringByPath("targetUrl");
- if (!string.IsNullOrEmpty(referrerUrl))
- {
- return Redirect(HttpContext.Server.UrlDecode(referrerUrl));
- }
- }
- return RedirectToAction("Index", "Home");
- }
- catch (Exception ex)
- {
- ModelState.AddModelError("", ex.Message);
- return View(model);
- }
- }
- else
- {
- ModelState.AddModelError("", "用户名或密码不正确请检查后重新输入!");
- this.RemoveUserCookies(model);
- return View(model);
- }
- }
- catch (Exception ex)
- {
- //this.RemoveUserCookies(model);
- //ModelState.AddModelError("", "提供的用户名或密码不正确。");
- throw ex;
- }
- }
- return View(model);
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- [AllowAnonymous]
- public ActionResult SSOLogin()
- {
- try
- {
- var loginID = UserServices.SSOLogin();
- this.LoginSureccessful(new LogOnModel
- {
- UserName = loginID
- }, loginID);
- return RedirectToAction("SSOLoginJump", "Account", new { Remote_Login_User = loginID });
- //return RedirectToAction("SSOLoginJump", "Account", new { Remote_Login_User = loginID });
- }
- catch (Exception ex)
- {
- ViewBag.ErrorMessage = ex.Message;
- //filterContext.HttpContext.Response.Redirect(FormsAuthentication.LoginUrl);
- }
- return View();
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- [AllowAnonymous]
- public ActionResult SSOLoginJump()
- {
- var loginID = Request["Remote_Login_User"];
- Session.Add("Remote_Login_User", loginID);
- return RedirectToAction("Index", "Home");
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- [NoSSO]
- public ActionResult LogOff()
- {
- var cookieName = EMIS.Utility.Const.LOCAL_SETTING_LOGIN_COOKIENAME;
- var logoffUrl = Url.Content(EMIS.Utility.Const.LOCAL_SETTING_LOGOFF_PAGE);
- HttpCookie cookie = new HttpCookie(cookieName);
- cookie.Value = "";
- cookie.Expires = DateTime.Now.AddDays(-1);
- Response.Clear();
- Response.AppendCookie(cookie);
- //if (Const.SSO_IS_SSO_LOGIN)
- //{
- // SSO.SSOLogout();
- //}
- var url = Request.QueryString["url"];
- if (!string.IsNullOrEmpty(url))
- {
- logoffUrl = logoffUrl += "?url=" + url;
- }
- return Redirect(logoffUrl);
- //return Redirect("http://portal.gdsspt.cn/c/portal/logout?service=http://localhost:2583/Account/Login");
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="loginID"></param>
- /// <returns></returns>
- [AllowAnonymous]
- public ActionResult ForgotPassword(string loginID)
- {
- return View();
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- [AllowAnonymous]
- [HttpPost]
- [ValidateAntiForgeryToken]
- public ActionResult ForgotPassword()
- {
- var result = new ReturnMessage { IsSuccess = true, Message = "邮件发送成功,请查收。" };
- string loginID = Request.Form["LoginID"];
- string failUrl = Url.Content("~/Account/ForgotPassword?LoginID=" + loginID);
- string successUrl = Url.Content("~/Account/Login");
- var user = UserServices.GetUserByLoginID(loginID);
- if (user == null)
- {
- result.IsSuccess = false;
- result.Message = "用户名输入错误。";
- return Json(result);
- }
- var url = HttpContext.Request.Url.Scheme + "://" + HttpContext.Request.Url.Host + ":" + HttpContext.Request.Url.Port + Url.Content("~/").TrimEnd('/');
- try
- {
- var email = UserServices.GetUserEmail(user.UserID);
- if (email == null)
- {
- result.IsSuccess = false;
- result.Message = "用户并没有注册电子邮箱信息。";
- return Json(result);
- }
- MailVerifyServices.SendVerifyMail(url, user.UserID, email);
- return Json(result);
- }
- catch (Exception ex)
- {
- result.IsSuccess = false;
- result.Message = ex.Message;
- return Json(result);
- }
- }
- /// <summary>
- /// 新增忘记密码页面
- /// </summary>
- /// <param name="loginID"></param>
- /// <returns></returns>
- [AllowAnonymous]
- public ActionResult NewForgotPassword(string loginID)
- {
- return View();
- }
- /// <summary>
- /// 新增忘记密码页面
- /// </summary>
- /// <returns></returns>
- [AllowAnonymous]
- [HttpPost]
- [ValidateAntiForgeryToken]
- public ActionResult NewForgotPassword()
- {
- var result = new ReturnMessage { IsSuccess = true, Message = "邮件发送成功,请查收。" };
- string loginID = Request.Form["LoginID"];
- string failUrl = Url.Content("~/Account/NewForgotPassword?LoginID=" + loginID);
- string successUrl = Url.Content("~/Account/NewLogin");
- var user = UserServices.GetUserByLoginID(loginID);
- if (user == null)
- {
- result.IsSuccess = false;
- result.Message = "用户名输入错误。";
- return Json(result);
- }
- var url = HttpContext.Request.Url.Scheme + "://" + HttpContext.Request.Url.Host + ":" + HttpContext.Request.Url.Port + Url.Content("~/").TrimEnd('/');
- try
- {
- var email = UserServices.GetUserEmail(user.UserID);
- if (email == null)
- {
- result.IsSuccess = false;
- result.Message = "用户并没有注册电子邮箱信息。";
- return Json(result);
- }
- MailVerifyServices.SendVerifyMail(url, user.UserID, email);
- return Json(result);
- }
- catch (Exception ex)
- {
- result.IsSuccess = false;
- result.Message = ex.Message;
- return Json(result);
- }
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public ActionResult ChangePassword()
- {
- return View();
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="changePasswordView"></param>
- /// <returns></returns>
- [HttpPost]
- public ActionResult ChangePassword(ChangePasswordView changePasswordView)
- {
- try
- {
- var principal = ((EMIS.Utility.FormValidate.CustomPrincipal)HttpContext.User);
- var loginID = principal.LoginID;
- var user = UserServices.GetUserByLoginID(loginID);
- if (user.Password.ToLower() != changePasswordView.OldPassword.MD5().ToLower())
- {
- return Json(new ReturnMessage()
- {
- IsSuccess = false,
- Message = "保存失败:原密码验证失败"
- });
- }
- UserServices.ChangePassword(changePasswordView, user.UserID);
- return Json(new ReturnMessage()
- {
- IsSuccess = true,
- Message = "密码已经成功修改!"
- });
- }
- catch (Exception ex)
- {
- return Json(new ReturnMessage()
- {
- IsSuccess = false,
- Message = "保存失败:" + ex.Message
- });
- }
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="url"></param>
- /// <returns></returns>
- public ActionResult GetTicket(string url)
- {
- FormsAuthenticationHelper fa = new FormsAuthenticationHelper();
-
- fa.GetTicket(System.Web.HttpContext.Current, url);
- return Json(true);
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="ticket"></param>
- /// <returns></returns>
- [HttpPost]
- [AllowAnonymous]
- public ActionResult AuthTicket(string ticket)
- {
- FormsAuthenticationHelper fa = new FormsAuthenticationHelper();
- EMIS.Utility.FormValidate.CustomPrincipal user = (EMIS.Utility.FormValidate.CustomPrincipal)fa.ValidateTitcket(System.Web.HttpContext.Current, ticket);
- return Json(user.LoginID);
- }
- /// <summary>
- /// 录取名单页面
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- [AllowAnonymous]
- public ActionResult NewStudentEnter()
- {
- //ViewBag.ReturnUrl = returnUrl;
- var model = this.GetUserCookies();
- if (model != null)
- {
- return View(model);
- }
- return View();
- }
- /// <summary>
- /// 录取名单页面列表查询
- /// </summary>
- /// <param name="pararms"></param>
- /// <returns></returns>
- [HttpPost]
- [AllowAnonymous]
- //[ValidateAntiForgeryToken]
- public ActionResult NewStudentEnter(string examineeNum, string verifyCode, string userName)
- {
- if (verifyCode != Session["code"] as string)
- {
- //ModelState.AddModelError("", "请输入正确的验证码!");
- return base.Json("错误");
- }
- var newStudentEnterView = newStudentEnterServices.GetNewStudentEnterView(examineeNum, userName);
- return base.Json(newStudentEnterView);
- }
- /// <summary>
- /// 录取通知书打印
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- [AllowAnonymous]
- public ActionResult Report()
- {
- return View();
- }
- }
- }
|