Я пытаюсь реализовать простой логин для администратора в проекте MVC3. Я новичок в ASP.NET и MVC3. Я гуглил и задавал вопросов ! Я видел много действительно хороших способов реализации этого, но все они были на очень абстрактном уровне и, откровенно говоря, может быть, в данный момент для меня это слишком много. У меня есть учетные данные в моей базе данных, так что в основном я просто хочу запросить это и перенаправить пользователя, если логин совпадает с ними, и если не отображать форму входа снова. Так вот что я получил. Моя модель:
public class FormModel
{
public bool isAdmin { get; set; }
[Required(ErrorMessage = "Please enter your Username")]
//[Remote("ValidateUserName", "Login", ErrorMessage = "UserName already taken!")]
[StringLength(6, MinimumLength = 3)]
[Display(Name = "Username:")]
[RegularExpression(@"(\S)+", ErrorMessage = "White space is not allowed")]
public string UserName { get; set; }
[Required(ErrorMessage = "Please enter your Password")]
[DataType(DataType.Password)]
[Display(Name = "Password:")]
public string Password { get; set; }
}
public User IsAdmin(string username, string password)
{
return (from user in db.Users
where user.username == username && user.password == password <--- alternative here is to just match username and pass against the data I have in my db columns(testdata 'admin', 'password')
&& user.IsAdmin == true
select user).SingleOrDefault();
}
И в моем контроллере в основном это прямо сейчас:
public ActionResult Index()
{
//some code here maybe a conditional
return View();
}
И наконец мой взгляд:
@model Web.VoucherCannon.Models.FormModel
@using (Html.BeginForm("HandleForm", "Login", FormMethod.Post, new {id = "myForm"})) {
@Html.ValidationSummary(true)
<div class="editor-label">
@Html.LabelFor(model => model.UserName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.UserName)
@Html.ValidationMessageFor(model => model.UserName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Password)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Password)
@Html.ValidationMessageFor(model => model.Password)
</div>
<button class="button">Log In</button>
}
Так что теперь. Как я могу использовать возвращенный результат запроса в моем контроллере, чтобы я мог войти? Я уверен, что я сделаю рефакторинг позже и сделаю это со слоем dbcontext и так далее, но сейчас я буду счастлив сделать эту работу. Благодарен за помощь!