То, о чем вы говорите, это авторизация, которая является интерфейсом. Вы не должны и не должны ограничивать доступ к БД для каждого пользователя. Скорее, у вас есть только один пользователь БД, который само приложение использует для извлечения данных. Возможность редактировать, удалять и др. c. управляется приложением, в зависимости от того, «авторизован» ли пользователь для этой конкретной операции или нет, что обычно контролируется с помощью ролей или утверждений.
Другими словами, вы должны установить роли, такие как Edit
, Delete
и др. c. и затем вы назначаете эти роли пользователям соответствующим образом: то есть тем, кто должен иметь возможность редактировать, назначается роль Edit
.
Наконец, у вас будет одно или несколько действий, которые фактически представляют просмотр для редактирования: пользователь взаимодействует с некоторой формой на странице HTML, чтобы фактически внести изменения. Для этих действий вы защищаете их с помощью атрибута Authorize
и указываете разрешенные роли:
[Authorize(Roles = "Edit")]
public IActionResult MyEditAction()
Если у пользователя нет соответствующих ролей, ему будет отказано доступ к этому представлению, и, следовательно, не может сделать необходимые взаимодействия, чтобы повлиять на «редактирование».
Это намеренно очень простой c обзор. Вероятно, вам понадобятся другие типы авторизации: на основе ресурсов (на уровне строк AKA), на основе политик и т. Д. c. Обратитесь к документации для получения дополнительной информации.