1

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

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

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

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

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

ответ

2

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

+0

Отлично, я напишу свой уровень безопасности соответственно. Спасибо за такой быстрый ответ! – RubyHaus