ログインしているページがあり、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)フィールドに何かを入力すると、システムに入ります。しかし、私はちょうどあなたがデータベースにユーザーを持っている場合に入りたいです。理解していますか? –