/ComponentOne Samples/Studio for ASP.NET Wijmo/ASP.NET MVC Tools/CS/TahDo/TahDo/Controllers/AccountController.cs
https://github.com/tforsberg/z · C# · 151 lines · 109 code · 23 blank · 19 comment · 12 complexity · 2d802ff9664214c44e9aa56c541daa0e MD5 · raw file
- using System;
- using System.Collections.Generic;
- using System.Diagnostics.CodeAnalysis;
- using System.Linq;
- using System.Security.Principal;
- using System.Web;
- using System.Web.Mvc;
- using System.Web.Routing;
- using System.Web.Security;
- using TahDo.Models;
- namespace TahDo.Controllers
- {
- 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();
- }
- [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 (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();
- }
- }
- }