using System.Web.Mvc; using System.Web.Security; using Umbraco.Web.Models; using Umbraco.Web.Mvc; using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Logging; using Umbraco.Core.Persistence; using Umbraco.Core.Services; using Umbraco.Web.Security; namespace Umbraco.Web.Controllers { [MemberAuthorize] public class UmbLoginStatusController : SurfaceController { private readonly MembershipHelper _membershipHelper; public UmbLoginStatusController() { } public UmbLoginStatusController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, MembershipHelper membershipHelper) : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger) { _membershipHelper = membershipHelper; } [HttpPost] [ValidateAntiForgeryToken] [ValidateUmbracoFormRouteString] public ActionResult HandleLogout([Bind(Prefix = "logoutModel")]PostRedirectModel model) { if (ModelState.IsValid == false) { return CurrentUmbracoPage(); } if (_membershipHelper.IsLoggedIn()) { FormsAuthentication.SignOut(); } TempData["LogoutSuccess"] = true; //if there is a specified path to redirect to then use it if (model.RedirectUrl.IsNullOrWhiteSpace() == false) { return Redirect(model.RedirectUrl); } //redirect to current page by default return RedirectToCurrentUmbracoPage(); } } }