Как я могу убедиться, что проверки IsInRole не используют кэшированные учетные данные - PullRequest
6 голосов
/ 14 июля 2011

У меня есть клиент WPF, который подключается к службе WCF, и я хочу заблокировать некоторые функции, чтобы только определенные пользователи могли выполнять определенные действия. Служба WCF олицетворяет пользователя клиента при выполнении методов службы. ОС Windows XP.

Я читал этот вопрос как часть моего исследования о том, как наилучшим образом применить роли пользователей к функциям в моем приложении (я хочу назначить пользователей в группы безопасности AD, а затем проверить IsInRole), и Я обеспокоен тем, что кэшированные разрешения позволят пользователям, чьи разрешения были ограничены, получать доступ к функциям, к которым у них больше нет прав. С другой стороны, я также обеспокоен тем, что пользователям, у которых были обновлены их разрешения, потребуется выйти из своей учетной записи Windows или даже, возможно, придется перезапустить службу WCF (в худшем случае), прежде чем они смогут получить доступ к новым функциям.

Какой самый простой способ гарантировать, что и клиент, и сервер могут сразу увидеть изменения в группах безопасности AD?

1 Ответ

2 голосов
/ 15 июля 2011

Вы всегда можете реализовать своего собственного поставщика членства, который запрашивает AD.Это довольно просто, и вы будете уверены, что все оценки разрешений точны, или, по крайней мере, точно так, как вы хотите.

Если вы обнаружите, что запросы к серверу AD при каждой оценке "дорогие" по производительностиВы можете создать свой собственный кеш на клиенте, который вы можете обновлять периодически или по требованию.Этот кеш может быть таким же простым, как индексированный список (например, словарь) разрешений, которые вы можете запросить довольно быстро.

Вот хорошая статья о том, как взаимодействовать с AD: http://www.codeproject.com/KB/system/everythingInAD.aspx

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