/// <summary> /// Authenticates the user. /// </summary> /// <param name="args">The arguments.</param> /// <returns>AuthenticatedUser.</returns> public AuthenticatedUser AuthenticateUser(UsernameAndPassword args) { var single = _database.Single<User, object>("User_GetOwnerPasswordByUsername", new { args.Username }, _database.AutoPopulate<User>); bool isValid = ValidatePassword(args, single); return (isValid ? new AuthenticatedUser { Username = single.Username } : null); }
/// <summary> /// Binds the model to a value by using the specified controller context and binding context. /// </summary> /// <param name="controllerContext">The controller context.</param> /// <param name="bindingContext">The binding context.</param> /// <returns>The bound value.</returns> public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { string username = controllerContext.RequestContext.HttpContext.Request["username"]; string password = controllerContext.RequestContext.HttpContext.Request["password"]; var creds = new UsernameAndPassword(username, password); return creds; }
/// <summary> /// Validates the password. /// </summary> /// <param name="args">The args.</param> /// <param name="single">The single.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> private bool ValidatePassword(UsernameAndPassword args, User single) { bool isValid = false; if (single != null) { try { isValid = _crypto.IsMatch(args.Password, single.Password); } catch { isValid = false; } } return isValid; }
public ActionResult Index(UsernameAndPassword usernameAndPassword) { var success = Redirect(string.Format("/{0}", usernameAndPassword.Username)); return Form(usernameAndPassword, success); }