У меня есть ряд служб, которые будут работать в контексте безопасности NT Authority \ System как служба Windows (службы основаны на NetTCP). В Active Directory хранятся шесть групп, которым будет разрешен доступ к этим службам:
Пользователи
Агенты
утверждающие
Администраторы (три уровня администраторов)
Я знаю, что могу получить пользователя, который подключается к службе, используя ServiceSecurityContext.Current.WindowsIdentity.Name.
Что мне нужно сделать, так это проверить на бизнес-уровне, что передаваемый пользовательский контекст может получить доступ к конкретной услуге, и я хотел бы, чтобы он следовал более старому приложению, которое поддерживает моя компания, которое использует PrincipalPermission, передавая его роль и использование метода Demand () для обеспечения доступа.
Я предполагаю, что мой первоначальный вопрос: если я передал PrincipalPermission имя пользователя ServiceSecurityContext и связанную роль (группу), он автоматически узнает, что ударил Active Directory за кулисами, поскольку служба работает в контексте учетной записи AD на тот же домен? Или я должен сделать что-то особенное?