| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using GreenTree.Nachtragsmanagement.Core;
- using GreenTree.Nachtragsmanagement.Core.Authentication;
- using GreenTree.Nachtragsmanagement.Services.User;
- using GreenTree.Nachtragsmanagement.Web.Models.Login;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- namespace GreenTree.Nachtragsmanagement.Web.Controllers
- {
- public class LoginController : Controller
- {
- private readonly IUserService _userService;
- private readonly IUserHelper _userHelper;
- public LoginController(
- IUserService userService,
- IUserHelper userHelper)
- {
- _userService = userService;
- _userHelper = userHelper;
- }
- // GET: Login
- public ActionResult Index()
- {
- var user = _userHelper.FromCookies();
- if (user != null)
- return RedirectToAction("Index", "Home");
- return View("~/Views/Login/Index.cshtml");
- }
- [HttpPost]
- public ActionResult Index(LoginModel model)
- {
- var user = _userService.GetUserByCustomNumber(model.Username);
- if (user == null)
- {
- ViewData["LoginFailed"] = true;
- return Index();
- }
- var password = StaticHelper.GetMD5Hash(model.Password);
- if (!String.Equals(user.Password, password, StringComparison.InvariantCulture))
- {
- ViewData["LoginFailed"] = true;
- return Index();
- }
- user.CurrentRole = user.Roles.First(r1 => r1.Level == user.Roles.Max(r2 => r2.Level));
- if (model.IsPermanent.HasValue && model.IsPermanent.Value)
- _userHelper.ToCookies(user, DateTime.MaxValue);
- else
- _userHelper.ToCookies(user, DateTime.Now.AddHours(2));
- return RedirectToAction("Index", "Home");
- }
- public ActionResult Logout()
- {
- _userHelper.ClearCookie();
- return RedirectToAction("Index", "Login");
- }
- }
- }
|