У меня есть приложение MVC.Net, которое разделяется на ярусы, содержащие репозитории, бизнес-логику и интерфейсные службы для контроллеров AngularJS и MVC.Передача идентификатора пользователя с помощью приложения n-уровня
Репозитории в настоящее время автономны и не обернуты в единицу рабочего шаблона. Этот рефакторинг будет проходить.
Я хотел запросить у людей, что в их опыте является наиболее эффективным способом переноса текущего пользователя в систему через различные уровни, чтобы обеспечить безопасность на уровне репозитория.
В настоящее время у меня есть класс UserLogic, который поддерживает ссылку на текущий зарегистрированный пользовательский Entity. Этот класс UserLogic затем вводится в контроллеры/бизнес-логику и т. Д. Но я подозреваю, что это довольно запутанный механизм для использования!
Каким образом пользовательский контекст будет использоваться для «безопасности»? Например, я работал над приложением один раз, когда любая вставка/обновление базы данных должна была быть помечена идентификатором пользователя, который выполнил его, и удобным способом сделать это было требование объекта контекста пользователя при создании экземпляра единицы рабочего объекта. – David
В приложении есть несколько пользователей, каждый из которых владеет различными другими объектами. Я хочу, чтобы пользователь A не мог получить доступ/изменить учетную запись пользователя B. Я хочу сделать это в Repo, чтобы удалить необходимость в проверке этого в контроллерах/бизнес-логике несколько раз. –
Если репозиторий можно использовать вне единицы работы (что, очевидно, может быть до планируемого рефакторинга, конечно), то, возможно, тот же шаблон может применяться в более широком смысле, требуя объекта контекста пользователя при построении любого заданного репозиторий. Затем операции репозитория могут внутренне включать предложения WHERE в данные этого объекта прозрачно для остальной части кода. – David