public override string[] GetRolesForUser(string username) { if (!HttpContext.Current.User.Identity.IsAuthenticated) { return(null); } //check cache var cacheKey = string.Format("{0}_role", username); if (HttpRuntime.Cache[cacheKey] != null) { return((string[])HttpRuntime.Cache[cacheKey]); } string[] roles = new string[] { }; using (SIBOACSecurityEntities sdb = new SIBOACSecurityEntities()) { roles = (from a in sdb.SIBOACRoles join b in sdb.SIBOACRolesDeUsuarios on a.Id equals b.IdRol join c in sdb.SIBOACUsuarios on b.IdUsuario equals c.Id where c.Usuario.Equals(username) select a.Nombre).ToArray <string>(); if (roles.Count() > 0) { HttpRuntime.Cache.Insert(cacheKey, roles, null, DateTime.Now.AddMinutes(_cacheTimeoutInMinute), Cache.NoSlidingExpiration); } } return(roles); }
public override bool ValidateUser(string username, string password) { using (SIBOACSecurityEntities sdb = new SIBOACSecurityEntities()) { var user = sdb.SIBOACUsuarios.Where(a => a.Usuario.Equals(username) && a.Contrasena.Equals(password)).FirstOrDefault(); if (user != null) { return(true); } } return(false); }
public async Task <ActionResult> ResetPassword(ResetPasswordViewModel model) { if (!ModelState.IsValid) { return(View(model)); } using (SIBOACSecurityEntities sdb = new SIBOACSecurityEntities()) { var user = sdb.SIBOACUsuarios.Where(a => a.Usuario.Equals(model.Code)).FirstOrDefault(); //var user = await UserManager.FindByNameAsync(model.Code); if (user == null) { // Don't reveal that the user does not exist //return RedirectToAction("ResetPasswordConfirmation", "Account"); return(View()); } //string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id.ToString()); try { //IdentityResult result = await this.UserManager.ResetPasswordAsync(user.Id.ToString(), model.Code, model.Password); SIBOACUsuarios usuarioModificado = new SIBOACUsuarios(); usuarioModificado.Id = user.Id; usuarioModificado.Usuario = user.Usuario; usuarioModificado.Email = user.Email; usuarioModificado.Contrasena = model.Password; usuarioModificado.Nombre = user.Nombre; db.Entry(usuarioModificado).State = EntityState.Modified; db.SaveChanges(); //if () //{ return(RedirectToAction("ResetPasswordConfirmation", "Account")); //} //AddErrors(result); } catch (Exception ex) { Console.WriteLine(ex.Message); } return(View()); } }
public ActionResult Login(LoginViewModel model, string returnUrl) { // Metodo simple, funcionando bien pero Custom Membership es mejor (No borrar) //if (!ModelState.IsValid) //{ // return View(model); //} //using (SIBOACSecurityEntities sdb = new SIBOACSecurityEntities()) //{ // var user = sdb.SIBOACUsuarios.Where(a => a.Usuario.Equals(model.Usuario) && a.Contrasena.Equals(model.Contrasena)).FirstOrDefault(); // if (user != null) // { // FormsAuthentication.SetAuthCookie(user.Usuario, model.Recordarme); // if (Url.IsLocalUrl(returnUrl)) // { // return RedirectToLocal(returnUrl); // } // else // { // return RedirectToAction("Profile", "Home"); // } // } //} //ModelState.Remove("Password"); //ModelState.AddModelError("", "Intento de login fallido."); //return View(); if (ModelState.IsValid) { var isValidUser = Membership.ValidateUser(model.Usuario, model.Contrasena); if (isValidUser) { FormsAuthentication.SetAuthCookie(model.Usuario, model.Recordarme); //if (Url.IsLocalUrl(returnUrl)) //{ // return Redirect(returnUrl); //} using (SIBOACSecurityEntities sdb = new SIBOACSecurityEntities()) { var user = sdb.SIBOACUsuarios.Where(a => a.Usuario.Equals(model.Usuario)).FirstOrDefault(); DateTime oldDate = new DateTime(2017, 01, 01); DateTime newDate = DateTime.Now; TimeSpan ts = newDate - oldDate; int diferenciaDias = ts.Days; if (model.Usuario == model.Contrasena) { return(RedirectToAction("ResetPassword", "Account", new { code = model.Usuario })); } else { return(RedirectToAction("Index", "Home")); } } } } ModelState.Remove("Password"); ModelState.AddModelError("", "Usuario o contraseƱa invalidos"); return(View()); }