Разрешения .NET WCF - PullRequest
       2

Разрешения .NET WCF

1 голос
/ 29 января 2010

У меня настроен веб-сервис .NET WCF, который предоставляет некоторые методы для создания / обновления уведомлений по электронной почте для различных идентификаторов контактов. Веб-сервис будет жить за брандмауэром.

Я боюсь, что если мы выставим вызов как:

bool SetAlertTemplate(int alertId, int templateId);

Один из клиентских веб-сайтов может непреднамеренно изменить предупреждение, которое не относится к contactId, использующему веб-сайт.

Даже если я использую:

bool SetAlertTemplate(int alertId, int contactId, int templateId);

Это может создать проблему в будущем, если мы представим веб-сервис общественности. Где любой может изменить любое предупреждение.

Каков наилучший способ показать веб-сервис и быть уверенным, что у клиента есть разрешения на изменение предупреждения contactId и, возможно, не отправлять эти параметры при каждом вызове.

1 Ответ

1 голос
/ 29 января 2010

Настройте службу WCF для перевода аутентифицированного пользователя в правильный IPrincipal экземпляр. Это гарантирует, что в остальной части стека вызовов Thread.CurrentPrincipal будет представлять аутентифицированного пользователя.

По вашему описанию это звучит так, как будто вам необходимо защитить активы (оповещения), а это значит, что вам нужно будет внедрить Списки контроля доступа (ACL) для активов.

Всякий раз, когда кто-либо пытается изменить актив, вы можете проверить, разрешено ли Thread.CurrentPrincipal изменять этот конкретный актив в соответствии с его ACL.

Похожие ответы:

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