/ITELCA_CONTROLESTUDIOS/Controllers/AccountController.cs
C# | 273 lines | 253 code | 7 blank | 13 comment | 9 complexity | 7a5209693daa4a4e31acc6fcd1180094 MD5 | raw file
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- using System.Web.Routing;
- using System.Web.Security;
- using ITELCA_CONTROLESTUDIOS.Models;
- using ITELCA_CLASSLIBRARY.Models.Classes;
- using ITELCA_CLASSLIBRARY.Models;
- using ITELCA_CLASSLIBRARY.Services;
- using System.Web.SessionState;
- namespace ITELCA_CONTROLESTUDIOS.Controllers
- {
- public class AccountController : Controller
- {
- //
- // GET: /Account/LogOn
- public ActionResult LogOn()
- {
- return View();
- }
- //
- // POST: /Account/LogOn
- [HttpPost]
- public ActionResult LogOn(LogOnModel model, string returnUrl)
- {
- if (ModelState.IsValid)
- {
- if (Membership.ValidateUser(model.UserName, model.Password))
- {
- //MembershipUser user = Membership.GetUser(model.UserName, true);
-
- //if (user != null)
- //{
- // if (user.LastActivityDate > DateTime.Now.Subtract(new TimeSpan(0, Membership.UserIsOnlineTimeWindow, 0)))
- // {
- // ModelState.AddModelError("", "Existe Una session Abierta");
- // }
- // else
- // {
- FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
-
- Session["InicioSesion"] = "Si";
- Session["UsuarioClaveIncorrecta"] = "No";
- Session["IdUsuario"] = new ServicioUsuario().ObtenerPorLogin(model.UserName.ToString()).USUARIO_ID.ToString();
- Session["NombreUsuario"] = new ServicioUsuario().ObtenerPorLogin(model.UserName.ToString()).NOMBREUSUARIO.ToString();
- if (returnUrl != null && returnUrl.Length > 1 && returnUrl.StartsWith("/")
- && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
- {
- return Redirect(returnUrl);
- }
- else
- {
- return RedirectToAction("Index", "Home");
- }
- // }
- //}
-
- }
- else
- {
- Session["UsuarioClaveIncorrecta"] = "Si";
- return RedirectToAction("Index", "Home");
- // ModelState.AddModelError("", "Usuario O clave Incorrecta");
- }
- }
- // If we got this far, something failed, redisplay form
- return View(model);
- }
- //
- // GET: /Account/LogOff
- public ActionResult LogOff()
- {
- MembershipUser user = Membership.GetUser(User.Identity.Name, true);
- Membership.UpdateUser(user);
- FormsAuthentication.SignOut();
- Session.Clear();
-
- return RedirectToAction("LogOn", "Account");
- }
- //
- // GET: /Account/Register
- public ActionResult Register()
- {
- return View();
- }
- //
- // POST: /Account/Register
- [HttpPost]
- public ActionResult Register(RegisterModel model)
- {
- if (ModelState.IsValid)
- {
- // Attempt to register the user
- MembershipCreateStatus createStatus;
- Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);
- if (createStatus == MembershipCreateStatus.Success)
- {
- FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
- return RedirectToAction("Index", "Home");
- }
- else
- {
- ModelState.AddModelError("", ErrorCodeToString(createStatus));
- }
- }
- // If we got this far, something failed, redisplay form
- return View(model);
- }
- //
- // GET: /Account/ChangePassword
- [Authorize]
- public ActionResult ChangePassword()
- {
- return View();
- }
- //
- // POST: /Account/ChangePassword
- [Authorize]
- [HttpPost]
- public ActionResult ChangePassword(ChangePasswordModel model)
- {
- if (ModelState.IsValid)
- {
- // ChangePassword will throw an exception rather
- // than return false in certain failure scenarios.
- bool changePasswordSucceeded;
- try
- {
- MembershipUser currentUser = Membership.GetUser(User.Identity.Name, true /* userIsOnline */);
- changePasswordSucceeded = currentUser.ChangePassword(model.OldPassword, model.NewPassword);
- }
- catch (Exception)
- {
- changePasswordSucceeded = false;
- }
- if (changePasswordSucceeded)
- {
- 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
- return View(model);
- }
- public ActionResult ResetPassword()
- {
- return View();
- }
- public ActionResult PasswordResetSuccessful()
- {
- return View();
- }
- [HttpPost]
- public ActionResult ResetPassword(RecoverPasswordModel model)
- {
- if (ModelState.IsValid)
- {
- try
- {
- MembershipUser user = Membership.GetUser(model.UserName);
- string newPassword = user.ResetPassword();
- EmailBroadcaster.SendEmail("Su nueva contraseña para ingresar al Sistema", "Su nueva contraseña para ingresar al Sistema es: " + newPassword, user.Email);
- Session.Add("Mensaje", "Una nueva contraseña ha sido enviada a su correo exitosamente.");
- return RedirectToAction("PasswordResetSuccessful", "Account");
- }
- catch
- {
- ModelState.AddModelError("Nombre de usuario", new Exception());
- Session.Add("Mensaje", "Ocurrió un error al intentar reiniciar la contraseña.");
- return RedirectToAction("Index", "Home");
- }
- }
- return View(model);
- }
- //
- // GET: /Account/ChangePasswordSuccess
- public ActionResult ChangePasswordSuccess()
- {
- return View();
- }
- [HttpPost]
- public ActionResult LogOnHome(string username, string password, string returnUrl)
- {
- LogOnModel model = new LogOnModel();
- model.UserName = username;
- model.Password = password;
- return this.LogOn(model, returnUrl);
- }
- public ActionResult LogOffHome()
- {
-
- MembershipUser user = Membership.GetUser(User.Identity.Name, true);
- Membership.UpdateUser(user);
- FormsAuthentication.SignOut();
-
- Session.Clear();
- return RedirectToAction("Index", "Home");
- }
- #region Status Codes
- private static string ErrorCodeToString(MembershipCreateStatus createStatus)
- {
- // See http://go.microsoft.com/fwlink/?LinkID=177550 for
- // a full list of status codes.
- switch (createStatus)
- {
- case MembershipCreateStatus.DuplicateUserName:
- return "User name already exists. Please enter a different user name.";
- case MembershipCreateStatus.DuplicateEmail:
- return "A user name for that e-mail address already exists. Please enter a different e-mail address.";
- case MembershipCreateStatus.InvalidPassword:
- return "The password provided is invalid. Please enter a valid password value.";
- case MembershipCreateStatus.InvalidEmail:
- return "The e-mail address provided is invalid. Please check the value and try again.";
- case MembershipCreateStatus.InvalidAnswer:
- return "The password retrieval answer provided is invalid. Please check the value and try again.";
- case MembershipCreateStatus.InvalidQuestion:
- return "The password retrieval question provided is invalid. Please check the value and try again.";
- case MembershipCreateStatus.InvalidUserName:
- return "The user name provided is invalid. Please check the value and try again.";
- case MembershipCreateStatus.ProviderError:
- return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
- case MembershipCreateStatus.UserRejected:
- return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
- default:
- return "An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator.";
- }
- }
- #endregion
- }
- }