Created
November 3, 2012 09:38
-
-
Save morsdyce/4006811 to your computer and use it in GitHub Desktop.
example 24
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 | |
{ | |
private readonly IFormsAuthenticationService formsService; | |
private readonly IMembershipService membershipService; | |
public AccountController(IFormsAuthenticationService formsService, IMembershipService membershipService) | |
{ | |
this.formsService = formsService; | |
this.membershipService = membershipService; | |
} | |
// ************************************** | |
// URL: /Account/LogOn | |
// ************************************** | |
public ActionResult LogOn() | |
{ | |
return View(); | |
} | |
[HttpPost] | |
public ActionResult LogOn(LogOnModel model, string returnUrl) | |
{ | |
if (ModelState.IsValid) | |
{ | |
if (membershipService.ValidateUser(model.UserName, model.Password)) | |
{ | |
formsService.SignIn(model.UserName, model.RememberMe); | |
if (!String.IsNullOrEmpty(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() | |
{ | |
ViewData["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 | |
ViewData["PasswordLength"] = membershipService.MinPasswordLength; | |
return View(model); | |
} | |
// ************************************** | |
// URL: /Account/ChangePassword | |
// ************************************** | |
[Authorize] | |
public ActionResult ChangePassword() | |
{ | |
ViewData["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 | |
ViewData["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