WCF и PrincipalPermission - PullRequest
       21

WCF и PrincipalPermission

1 голос
/ 25 апреля 2009

У меня есть ряд служб, которые будут работать в контексте безопасности NT Authority \ System как служба Windows (службы основаны на NetTCP). В Active Directory хранятся шесть групп, которым будет разрешен доступ к этим службам:

Пользователи Агенты утверждающие Администраторы (три уровня администраторов)

Я знаю, что могу получить пользователя, который подключается к службе, используя ServiceSecurityContext.Current.WindowsIdentity.Name.

Что мне нужно сделать, так это проверить на бизнес-уровне, что передаваемый пользовательский контекст может получить доступ к конкретной услуге, и я хотел бы, чтобы он следовал более старому приложению, которое поддерживает моя компания, которое использует PrincipalPermission, передавая его роль и использование метода Demand () для обеспечения доступа.

Я предполагаю, что мой первоначальный вопрос: если я передал PrincipalPermission имя пользователя ServiceSecurityContext и связанную роль (группу), он автоматически узнает, что ударил Active Directory за кулисами, поскольку служба работает в контексте учетной записи AD на тот же домен? Или я должен сделать что-то особенное?

1 Ответ

2 голосов
/ 25 апреля 2009

Правильно, когда вам требуется роль, она вызывает IPrincipal.IsInRole. Это будет использовать любую реализацию принципала. Так что, если он установлен на Windows, он сделает всю работу, чтобы поразить AD.

...