예제 #1
0
        public virtual ActionResult SignIn(SignInViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return PartialView(model);
            }

            var user = Context.Users.FindByCredentials(model.Username, model.Password);
            if (user == null)
            {
                model.Message = Strings.InvalidUsernamePasswordMessage;
                return PartialView(model);
            }

            if (!user.IsAdministrator && user.Privileges.Count == 0)
            {
                model.Message = Strings.NotAuthorizedToAccessLogsMessage;
                return PartialView(model);
            }

            var expiration = model.RememberMe ? DateTime.Now.AddYears(10) : DateTime.Now.AddMinutes(30);
            var roles = user.IsAdministrator ? Role.Administrator : String.Empty;
            var ticket = new FormsAuthenticationTicket(1, user.Username, DateTime.Now, expiration, model.RememberMe, roles);
            var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket));
            if (model.RememberMe)
            {
                cookie.Expires = ticket.Expiration;
            }
            Response.Cookies.Add(cookie);

            return PartialView(MVC.Account.Views.Redirect);
        }
예제 #2
0
 public virtual ActionResult SignIn()
 {
     var model = new SignInViewModel();
     return PartialView(model);
 }