#asp.net #asp.net-mvc #authentication
#asp.net #asp.net-mvc #аутентификация
Вопрос:
Я пытаюсь учиться ASP.NET и я хочу создать страницу входа в систему, где вы можете ввести свой адрес электронной почты и пароль, а затем войти в систему.
У Login.cshtml
меня есть эта разметка:
<div class="form-group has-feedback">
<label asp-for="Email"></label>
<input asp-for="Email" type="email" value="super@admin.com" class="form-control" placeholder="Email" />
<span class="glyphicon glyphicon-envelope form-control-feedback"></span>
<span asp-validation-for="Email" class="text-danger"></span>
</div>
<div class="form-group has-feedback">
<label asp-for="Password"></label>
<input asp-for="Password" type="password" value="123456" class="form-control" placeholder="Password" />
<span class="glyphicon glyphicon-lock form-control-feedback"></span>
<span asp-validation-for="Password" class="text-danger"></span>
</div>
В поля значений мне пришлось вставить два статических значения, потому что иначе я не смогу войти в свое веб-приложение. Как я могу принимать значения из моей базы данных? У меня есть таблица Users
, созданная таким образом:
CREATE TABLE "Users"
(
"Id" NVARCHAR(450) NOT NULL COLLATE 'Latin1_General_CI_AS',
"AccessFailedCount" INT NOT NULL,
"ApplicationUserRole" BIT NOT NULL,
"Email" NVARCHAR(256) NULL DEFAULT NULL COLLATE 'Latin1_General_CI_AS',
"EmailConfirmed" BIT NOT NULL,
"PasswordHash" NVARCHAR(max) NULL DEFAULT NULL COLLATE 'Latin1_General_CI_AS',
"PhoneNumber" NVARCHAR(max) NULL DEFAULT NULL COLLATE 'Latin1_General_CI_AS',
"PhoneNumberConfirmed" BIT NOT NULL,
"isSuperAdmin" BIT NOT NULL,
"profilePictureUrl" NVARCHAR(max) NULL DEFAULT NULL COLLATE 'Latin1_General_CI_AS',
PRIMARY KEY ("Id")
);
Комментарии:
1. Вопрос, который вы задали, очень общий? Используете ли вы EF?
2. @MehranGharzi да, я использую его
Ответ №1:
Я сделал это для меньшего примера
public class User
{
public int Id { get; set; }
[Required]
public string Email { get; set; }
[Required]
public string Password { get; set; }
}
мой контроллер
public ActionResult NewUser(User model)
{
using (var db = new IdentityModel())
{
db.Plans.Add(model);
db.SaveChanges();
}
}
и просмотр
@model MyProject.User
@using (Html.BeginForm("NewUser", "Account", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
<div>
@Html.LabelFor(q => q.User)
@Html.EditorFor(q => q.User, new { htmlAttributes = new { @class = "form-control", placeholder = "" } })
@Html.ValidationMessageFor(model => model.User, "", new { @class = "text-danger" })
</div>
<div>
@Html.LabelFor(q => q.Password)
@Html.EditorFor(q => q.Password, new { htmlAttributes = new { @class = "form-control", placeholder = "" } })
@Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" })
</div>
}