Я написал и развернул пользовательское расширение безопасности для SSRS 2008r2, и оно прекрасно работает, если не считать попытки развернуть отчеты из BIDS 2008/Visual Studio.
Архитектура расширения безопасности обрабатывает вход в систему через несколько органов, и я управляю этим, создавая пользовательский сеанс в LogonUser(), сохраняя его в базе данных и затем загружая сеанс в клиентский прокси-класс для веб-службы RS, используя UID, переданный cookie из службы, а затем перезаписывает билет проверки подлинности, чтобы он содержал идентификатор сеанса плюс роли пользователя для текущего пользователя. Затем эти значения можно использовать в пользовательском расширении авторизации для управления разрешениями пользователей на действия и объекты SSRS.
Проблема, с которой я столкнулся, заключается в том, что он не работает при развертывании отчетов из BIDS. Он обращается к службе напрямую, поэтому класс прокси службы не требуется. Я попытался обработать событие после аутентификации в контексте HTTP, но, увы, файл cookie сеанса не сохраняется службой RS, поэтому я не могу получить доступ к значениям сеанса.
Итак, что мне не хватает? Есть ли другой метод управления ролями и разрешениями пользователей, который нигде не требует жесткого кодирования имен пользователей? Как я уже сказал, вход в систему может осуществляться с использованием нескольких полномочий, поэтому управление разрешениями только с помощью имени пользователя невозможно (и мысль об этом заставляет меня съеживаться).
Одним из возможных решений, о котором я подумал, является написание расширения или плагина для BIDS, который, по сути, действует как прокси для веб-службы, что позволило бы мне лучше контролировать процесс входа в систему, но я понятия не имею, возможно ли это (гугл не поможет. ..)
Любая помощь будет принята с благодарностью!