Я занимаюсь разработкой приложения и использую уровень «обслуживания» между контроллерами и репозиториями для проверки моделей / бизнес-проверок. Поскольку это мультитенантное приложение (с общей базой данных), мне нужно выполнить проверку разрешений для всех операций.
Одна вещь, которую я не уверен, как обращаться с типами возвращаемых данных, если пользователь не имеет доступа к определенной операции. Например, скажем, у меня есть метод GetAccountById
. Обычно этот метод возвращает экземпляр объекта Account
(или null
, если он не существует). Каким будет соответствующее возвращаемое значение в случае, если учетная запись существует, но текущий пользователь не имеет к ней доступа? Я на самом деле не хочу бросать исключение, так как оно вряд ли пригодится. Поэтому возникает вопрос: как я могу предупредить потребителя моего уровня обслуживания (будь то контроллер или веб-служба), что авторизация недействительна? Должен ли я просто создать какой-то тип GetAccountByIdResult
и включить в него результат функции (включая любые коды «ошибок», фактическую сущность и т. Д.)?
Спасибо