Авторизация сообщений WCF - PullRequest
0 голосов
/ 03 октября 2011

Я создаю службу WCF, в которой мне нужно добавить какую-то защиту, чтобы пользователи не могли получать информацию, которая им не принадлежит.Я говорю о чем-то похожем на этот вопрос здесь

Служба имеет такие вызовы, как

Order GetSalesOrder(id)

, и мне нужно убедиться, что пользователь не может вернуться назадприказ, который не принадлежит ему / ей.Я знаю, что мог бы делать так, как цитирует ссылка, и просто иметь явный вызов CheckPermission, который идет в базу данных и проверяет.Но потом я получаю кучу кода проверки разрешений везде.Я знаю, что мог бы просто передать идентификатор пользователя в функцию GetSalesOrder, но это потребовало бы изменения при каждом вызове службы.Эта опция работает не очень хорошо, поскольку существуют сценарии, когда определенные пользователи могут получить доступ ко всем заказам (не в зависимости от роли пользователя, в зависимости от того, является ли пользователь внутренним или внешним).Я также читал о ServiceAuthorizationManager, но это, кажется, больше для вещей, основанных на утверждениях.Есть ли другие варианты?Итак, вот варианты, которые я могу придумать:

  1. Явная проверка разрешений при вызовах службы вызовов
  2. ServiceAuthorizationManager
  3. Какой-то специальный атрибут и инспектор сообщений
...