У меня есть приложение, которое использует библиотеку для репозитория для выполнения всех операций с базой данных. В этой библиотеке много методов, и у некоторых пользователей есть права на выполнение всех операций, кроме других.структура сущности, WCF и разрешения пользователя: как реализовать его
У меня есть клиентское приложение, которое, если оно установлено на компьютере внутри локальной сети, этот клиент напрямую использует репозиторий для подключения к базе данных. Таким образом, по соображениям производительности клиент не должен проходить через хост WCF.
Если приложение установлено на компьютере вне локальной сети, он подключается через службу WCF и затем использует репозиторий для подключения к базе данных.
Мой вопрос: Как проверить, имеет ли пользователь разрешение на использование метода репозитория.
Я думаю о двух вариантах. Один из них - когда я создаю объект в репозитории, он создается, когда я запускаю приложение и уничтожаю его при закрытии приложения. Когда я создаю репозиторий, я получаю всю конфигурацию разрешений для всех пользователей, поэтому я выполняю только один запрос в базе данных. Однако, если приложение очень большое или у меня много пользователей, это может потреблять много памяти, что не очень хорошо.
Другой вариант - для каждого метода в репозитории передать два дополнительных аргумента - пользователя и пароль, поэтому первое, что делает каждый метод, это запрос к базе данных для разрешения. Это потребляет меньше памяти, но делает больше запросов к базе данных. Запрос очень прост, но он потребляет ресурсы (соединения).
Так что я хотел бы знать, есть ли больше возможностей для контроля разрешений или мой первый вариант является хорошим решением.
Я отредактировал ваше название. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –
Спасибо, в моих будущих вопросах я буду следовать этим рекомендациям. –