diff --git a/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs b/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs index 56bc2990e..d22afd69d 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs +++ b/src/Orchard.Web/Modules/Orchard.Users/Controllers/AccountController.cs @@ -82,14 +82,14 @@ namespace Orchard.Users.Controllers { [AlwaysAccessible] [SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", Justification = "Needs to take same parameter type as Controller.Redirect()")] - public ActionResult LogOn(string userNameOrEmail, string password, string returnUrl) { + public ActionResult LogOn(string userNameOrEmail, string password, string returnUrl, bool rememberMe) { var user = ValidateLogOn(userNameOrEmail, password); if (!ModelState.IsValid) { var shape = _orchardServices.New.LogOn().Title(T("Log On").Text); return new ShapeResult(this, shape); } - _authenticationService.SignIn(user, false); + _authenticationService.SignIn(user, rememberMe); foreach (var userEventHandler in _userEventHandlers) { userEventHandler.LoggedIn(user); } diff --git a/src/Orchard.Web/Modules/Orchard.Users/Views/LogOn.cshtml b/src/Orchard.Web/Modules/Orchard.Users/Views/LogOn.cshtml index 7c4dbc7f5..eb6625545 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Views/LogOn.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Users/Views/LogOn.cshtml @@ -17,17 +17,20 @@
} \ No newline at end of file diff --git a/src/Orchard/Security/Providers/FormsAuthenticationService.cs b/src/Orchard/Security/Providers/FormsAuthenticationService.cs index 27c09c994..9a5261a7b 100644 --- a/src/Orchard/Security/Providers/FormsAuthenticationService.cs +++ b/src/Orchard/Security/Providers/FormsAuthenticationService.cs @@ -20,8 +20,7 @@ namespace Orchard.Security.Providers { Logger = NullLogger.Instance; - // TEMP: who can say... - ExpirationTimeSpan = TimeSpan.FromHours(6); + ExpirationTimeSpan = TimeSpan.FromDays(30); } public ILogger Logger { get; set; } @@ -31,7 +30,7 @@ namespace Orchard.Security.Providers { public void SignIn(IUser user, bool createPersistentCookie) { var now = _clock.UtcNow.ToLocalTime(); var userData = Convert.ToString(user.Id); - + var ticket = new FormsAuthenticationTicket( 1 /*version*/, user.UserName, @@ -50,7 +49,11 @@ namespace Orchard.Security.Providers { if (FormsAuthentication.CookieDomain != null) { cookie.Domain = FormsAuthentication.CookieDomain; } - + + if (createPersistentCookie) { + cookie.Expires = ticket.Expiration; + } + var httpContext = _httpContextAccessor.Current(); httpContext.Response.Cookies.Add(cookie); _signedInUser = user;