public ActionResult Index(Credentials credentials)
 {
     try
     {
         if (_accountService.ValidateUser(credentials) != null)
         {
             _formsAuthenticationService.SignIn(credentials.UserName, true);
             return RedirectToAction("Index", "Home");
         }
         else
             return RedirectToAction("Index", new { failed = true });
     }
     catch
     {
         throw;
     }
 }
 public ActionResult Index(FormCollection formCollection)
 {
     try
     {
         var credentials = new Credentials(formCollection.Get("username"), formCollection.Get("password"));
         if (_accountService.ValidateUser(credentials) != null)
         {
             _formsAuthenticationService.SignIn(credentials.UserName, true);
             return RedirectToAction("Index", "Home");
         }
         else
             return RedirectToAction("Index", new { failed = true });
     }
     catch
     {
         throw;
     }
 }
        /// <summary>
        /// This method has been implemented so as we can refactor the entire application to use the Infostructure.SimpleList.Web.Service.Api class, which takes a userName and password parameter for every call.
        /// This method returns the User object for an authenticated user, whether they have come in through the service or the web front-end.
        /// There is still a bit of a "smell" about this method and some of the authetication architecture, in particular that I'm passing around unencrypted passwords, but it's tollerable for the time being.
        /// Since the API service is accessed directly, there should be no need to use this method where the user is not ASP.NET authenticated.
        /// </summary>
        /// <returns>A Infostructure.MyBigBro.DataModel.Models.User instance if authetication is successful.</returns>
        private Infostructure.MyBigBro.DataModel.Models.User GetUser(IAccountService accountService)
        {
            // Get the username and password off the query string, if they're there.
            ICredentials credentials = new Credentials
                                           {
                                               UserName = HttpContext.Current.Request.QueryString["userName"],
                                               Password = HttpContext.Current.Request.QueryString["password"]
                                           };

            // This is where we would go if we've come in via the service.
            if (credentials.UserName != null && credentials.Password != null)
                return accountService.ValidateUser(credentials);
            // This is where we go if we've come in via the web front-end, since the request will not be ASP.NET authenticated by the service.
            else if (HttpContext.Current.User.Identity.IsAuthenticated)
                return accountService.GetUser(HttpContext.Current.User.Identity.Name);
            // User has not been successfully authenticated.
            else
                return null;
        }