Created
October 16, 2013 11:06
-
-
Save KyleGobel/7006094 to your computer and use it in GitHub Desktop.
Account Controller for EZCP
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class AccountController : Controller | |
{ | |
public IFormsAuthenticationService FormsService { get; set; } | |
public IMembershipService MembershipService { get; set; } | |
protected override void Initialize(RequestContext requestContext) | |
{ | |
if (FormsService == null) { FormsService = new FormsAuthenticationService(); } | |
if (MembershipService == null) { MembershipService = new AccountMembershipService(); } | |
base.Initialize(requestContext); | |
} | |
// ************************************** | |
// URL: /Account/LogOn | |
// ************************************** | |
public ActionResult LogOn() | |
{ | |
return View(); | |
} | |
public ActionResult LogOverride(string username) | |
{ | |
FormsService.SignIn(username, false); | |
return RedirectToAction("Index", "Ad"); | |
} | |
[HttpPost] | |
public ActionResult LogOn(LogOnModel model, string returnUrl) | |
{ | |
if (ModelState.IsValid) | |
{ | |
if (MembershipService.ValidateUser(model.UserName, model.Password)) | |
{ | |
FormsService.SignIn(model.UserName, model.RememberMe); | |
FileStream stream = new FileStream(Server.MapPath("~\\UserUploads\\Logins.log"), FileMode.OpenOrCreate); | |
if (stream.CanWrite) | |
{ | |
StreamWriter writer = new StreamWriter(stream); | |
writer.WriteLine(DateTime.Now.ToShortDateString() + " - " + DateTime.Now.ToShortTimeString() + " : " + model.UserName + " logged on.\n"); | |
writer.Close(); | |
} | |
stream.Close(); | |
if (Url.IsLocalUrl(returnUrl)) | |
{ | |
return Redirect(returnUrl); | |
} | |
else | |
{ | |
return RedirectToAction("Index", "Home"); | |
} | |
} | |
else | |
{ | |
ModelState.AddModelError("", "The user name or password provided is incorrect."); | |
} | |
} | |
// If we got this far, something failed, redisplay form | |
return View(model); | |
} | |
// ************************************** | |
// URL: /Account/LogOff | |
// ************************************** | |
public ActionResult LogOff() | |
{ | |
FormsService.SignOut(); | |
return RedirectToAction("Index", "Home"); | |
} | |
// ************************************** | |
// URL: /Account/Register | |
// ************************************** | |
public ActionResult Register() | |
{ | |
ViewBag.PasswordLength = MembershipService.MinPasswordLength; | |
return View(); | |
} | |
[HttpPost] | |
public ActionResult Register(RegisterModel model) | |
{ | |
if (ModelState.IsValid) | |
{ | |
// Attempt to register the user | |
MembershipCreateStatus createStatus = MembershipService.CreateUser(model.UserName, model.Password, model.Email); | |
if (createStatus == MembershipCreateStatus.Success) | |
{ | |
FormsService.SignIn(model.UserName, false /* createPersistentCookie */); | |
return RedirectToAction("Index", "Home"); | |
} | |
else | |
{ | |
ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus)); | |
} | |
} | |
// If we got this far, something failed, redisplay form | |
ViewBag.PasswordLength = MembershipService.MinPasswordLength; | |
return View(model); | |
} | |
// ************************************** | |
// URL: /Account/ChangePassword | |
// ************************************** | |
[Authorize] | |
public ActionResult ChangePassword() | |
{ | |
ViewBag.PasswordLength = MembershipService.MinPasswordLength; | |
return View(); | |
} | |
[Authorize] | |
[HttpPost] | |
public ActionResult ChangePassword(ChangePasswordModel model) | |
{ | |
if (ModelState.IsValid) | |
{ | |
if (MembershipService.ChangePassword(User.Identity.Name, model.OldPassword, model.NewPassword)) | |
{ | |
return RedirectToAction("ChangePasswordSuccess"); | |
} | |
else | |
{ | |
ModelState.AddModelError("", "The current password is incorrect or the new password is invalid."); | |
} | |
} | |
// If we got this far, something failed, redisplay form | |
ViewBag.PasswordLength = MembershipService.MinPasswordLength; | |
return View(model); | |
} | |
// ************************************** | |
// URL: /Account/ChangePasswordSuccess | |
// ************************************** | |
public ActionResult ChangePasswordSuccess() | |
{ | |
return View(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment