Ограничить доступ пользователей к данным других пользователей - PullRequest
0 голосов
/ 21 января 2019

У меня проблема с разработкой общей функциональности сокрытия информации, созданной пользователем от других пользователей. Например, для редактирования продуктов, созданных пользователем USER1, обычно мы используем один из следующих вариантов.

  1. / Product / Edit / Id / 1
  2. / Продукт / Редактировать? Id = 1

enter image description here

Меня беспокоит, что если USER2 получил Id 1, он также сможет получить доступ к Product с Id = 1, который был создан USER1. Как ограничить доступ USER2 к данным USER1? Это может потребоваться для каждого модуля в проекте. Есть ли общий способ добиться этого? Спасибо

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Предполагая, что вы включили какую-то аутентификацию ASP.Net (пользователь доказал, кто они), вам нужно подумать об авторизации (что пользователь может делать).

Не помогает, что эти два термина часто объединяются или используются взаимозаменяемо. В MVC пользовательский AuthorizeAttribute часто используется для того и другого.

Для управления записями текущий зарегистрированный пользователь доступен через IPrincipal с HttpContext.Current.User.

Идентификатор пользователя обычно устанавливается на HttpContext.User.Current.Identity.Name, хотя вам может потребоваться выполнить нулевую проверку, если не каждый маршрут аутентифицирован.

0 голосов
/ 21 января 2019

Если вы сохраняете состояние того, какой пользователь обращается к данным. Вы можете добавить "WHERE CreatedBy = {YOURLOGGEDINUSER}" к этому запросу и во всем приложении. Тогда, даже если он получит правильный идентификатор, никакие данные не будут возвращены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...