У меня есть страница с логином, и я делаю это с помощью метода MVC C# ... Я хотел знать, как я проверяю, будут ли введены имя пользователя и пароль, которые я набираю, в базе данных ... Как вы вводите что-либо напечатанное.Как проверить логин в моей базе данных (MVC C#)
**HTML**
@model QuestionarioSaude.Model.UsuarioModel
@{
ViewBag.Title = "Login";
}
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4">
<div class="login-panel panel panel-default">
<div class="panel-body">
@using (Html.BeginForm("Login", "Login", FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
if (@ViewBag.Message != null)
{
<div style="border:1px solid red;">
@ViewBag.Message
</div>
}
<div class="form-group">
@Html.TextBoxFor(a => a.Usuario, new { @placeholder="Digite o seu usuário", @class = "form-control" })
@Html.ValidationMessageFor(a => a.Usuario)
</div>
<div class="form-group">
@Html.PasswordFor(a => a.Senha, new { @placeholder="Digite a sua senha", @class="form-control" })
@Html.ValidationMessageFor(a => a.Senha)
</div>
<input type="submit" class="btn btn-default" value="Entrar" />
}
</div>
</div>
</div>
</div>
</div>
@section scripts{
@Scripts.Render("~/bundles/jqueryval")
}
Модель
public class UsuarioModel
{
public int? IdUser { get; set; }
[Required(ErrorMessage = "Digite o usuário", AllowEmptyStrings = false)]
public string Usuario { get; set; }
[Required(ErrorMessage = "Digite a senha", AllowEmptyStrings = false)]
[DataType(System.ComponentModel.DataAnnotations.DataType.Password)]
public string Senha { get; set; }
public string Perfil { get; set; }
}
Контроллер
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(string Usuario, string Senha)
{
UsuarioModel usuariomodel = new UsuarioModel();
usuariomodel.Usuario = Usuario;
usuariomodel.Senha = Senha;
if (ModelState.IsValid) //checa se é valido
{
if (usuariomodel.Usuario != "" && usuariomodel.Senha != "")
{
UsuarioBLL usuBll = new UsuarioBLL();
usuBll.VerificarUsuario(usuariomodel);
Session["UsuarioID"] = usuariomodel.IdUser.ToString();
Session["NomeUsuario"] = usuariomodel.Usuario.ToString();
return RedirectToAction("Index", "Home");
}
}
return View();
}
DAL
public bool UsuarioUnico(UsuarioModel usu)
{
SqlConnection conn = new SqlConnection(this.ConnectionString);
conn.Open();
SqlTransaction trans = conn.BeginTransaction();
bool result = false;
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = @"SELECT TOP 1 * FROM USUARIO WHERE USUARIO like @Usuario and SENHA like @Senha";
cmd.CommandType = CommandType.Text;
//cmd.Parameters.AddWithValue("@IdUser", usu.IdUser);
cmd.Parameters.AddWithValue("@Usuario", usu.Usuario);
cmd.Parameters.AddWithValue("@Senha", usu.Senha);
//cmd.Parameters.AddWithValue("@Perfil", usu.Perfil);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
Console.WriteLine("{0}\t{1}", reader.GetInt32(0), reader.GetString(1));
}
}
else
{
Console.WriteLine("Nenhuma linha encontrada");
}
reader.Close();
return result;
}
, что случилось с этим кодом? – McNets
Каким образом код, который у вас уже не работает, как и ожидалось? С какой проблемой вы столкнулись? – David
Вы не проверяете базу данных. Если я ввожу что-либо в поля (html), он входит в систему. Но я просто хочу войти, если у вас есть пользователь в базе данных. Понял? –