public ActionResult Register(Registrar user)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    using (var db = new BibliotecaRHDKEntities())
                    {
                        var crypto     = new SimpleCrypto.PBKDF2();
                        var encrypPass = crypto.Compute(user.Senha);
                        var newUser    = db.Registrar.Create();
                        newUser.Email        = user.Email;
                        newUser.Senha        = encrypPass;
                        newUser.SenhaSalt    = crypto.Salt;
                        newUser.PrimeiroNome = user.PrimeiroNome;
                        newUser.UltimoNome   = user.UltimoNome;
                        newUser.UserType     = "User";
                        newUser.CreatedDate  = DateTime.Now;
                        newUser.IsActive     = true;
                        db.Registrar.Add(newUser);
                        db.SaveChanges();
                        return(RedirectToAction("LogIn", "User"));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Dado não está correto.");
                }
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entidade do tipo \"{0}\" no estado \"{1}\" possuem os seguintes erros de validação:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Propriedade: \"{0}\", Erro: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }

            return(View());
        }
        private bool IsValid(string email, string senha)
        {
            var  crypto  = new SimpleCrypto.PBKDF2();
            bool IsValid = false;

            using (var db = new BibliotecaRHDKEntities())
            {
                var user = db.Registrar.FirstOrDefault(u => u.Email == email);
                if (user != null)
                {
                    if (user.Senha == crypto.Compute(senha, user.SenhaSalt))
                    {
                        IsValid = true;
                    }
                }
            }
            return(IsValid);
        }