Как я могу предоставить доступ к изменениям в базе данных через формы в ASP. NET приложении MVC5, создавая определенных c пользователей и пароли, чтобы они могли вносить изменения? Мой клиент не хочет строить решение на основе логинов. Полный контент может быть виден любому (без входа в систему), но изменения в базе данных могут быть сделаны только тогда, когда указанный c пользователь вводит свои учетные данные (имя пользователя, пароль) и нажимает кнопку «Установить», см. Pi c. Я пробовал некоторые вещи, такие как установка условия basi c «if else», когда имя пользователя и пароли те же, что и в таблице SQL, но изменения могут быть сделаны даже без ввода учетных данных в поля. ссылка на пи c:
Моя правка просмотра:
@model Company.Models.SovaGenNastaveni
@{
ViewBag.Title = "Edit";
Layout = "~/Views/Shared/_LayoutPage1.cshtml";
}
<link href="~/Content/styles/EditForms.css" rel="stylesheet" />
<div id="states" class="container-fluid">
<div class="row">
<h4>Current Values</h4>
</div>
<table id="FormEdit" class="table table-bordered">
<tr>
<th>Item name</th>
<td>@Model.settingsName</td>
</tr>
<tr>
<th class="alert alert-primary">State</th>
@if
(Model.State == 101)
{
<td class="alert alert-success"><strong>Active</strong></td>
}
else
{
<td class="alert alert-danger"><strong>InActive</strong></td>
}
</tr>
<tr>
<th>Description of settings</th>
<td>@Model.settingsDesc</td>
</tr>
</table>
<form id="formEdit" action="/SimulationSettings/edit/@Model.ID" method="post">
<div class="row">
<h4>Change state</h4>
</div>
<div class="form-row">
<div class="form-group col-md-5">
<label for="Hodnota">Choose a new <strong>Hodnota</strong></label>
<select class="form-control" id="ChooseState" name="State">
<option value="@Model.State">---Choose---</option>
<option value="101">Active</option>
<option value="102">InActive</option>
</select>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-5">
<label for="Hodnota">Confirm your rights</label>
<input type="text" class="form-control" id="Name" name="Name" placeholder="username" value="" />
<input type="password" class="form-control" id="Password" name="Password" placeholder="password" />
</div>
</div>
<button type="submit" class="btn btn-success">Set</button>
<a class="btn btn-danger" href="/SimulationSettings/Settings">Cancel</a>
</form>
</div>
Контроллер:
public ActionResult Edit(long id)
{
SiempelLinkedServerEntities db = new SiempelLinkedServerEntities();
SovaGenNastaveni existingSetting = db.SovaGenNastavenis.Where(x => x.ID == id).FirstOrDefault();
return View(existingSetting);
}
[HttpPost]
//[Authorize]???
public ActionResult Edit(SovaGenNastaveni genNastaveni)
{
SiempelLinkedServerEntities db = new SiempelLinkedServerEntities();
SovaGenNastaveni existingSetting = db.SovaGenNastavenis.Where(x => x.ID == genNastaveni.ID).FirstOrDefault();
existingSetting.State = genNastaveni.State;
db.SaveChanges();
return RedirectToAction("Settings", "SimulationSettings");
}
Модель спроектирована и сгенерирована с сервера SQL (EF Designer, DB-First Approach)
На SQL Сервер У меня есть таблица с 3 столбцами = ID, имя пользователя, пароль (это может быть быть зашифрован с ха sh). Решение должно быть развернуто только в Intr anet компании. Никакой необходимой безопасности или безопасности не требуется.
Короче говоря, страница редактирования должна быть авторизована, когда предоставленный пользователь вводит свои учетные данные, изменения будут внесены в БД, если учетные данные не заполнены, если ничего не произойдет.
Даже я буду будьте счастливы, если вы можете предложить или порекомендовать какой-то конкретный учебник c для этого типа авторизации.