Как установить значения электронной почты и пароля из базы данных в ASP.NET

#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>
}