для клиента, мне нужно реализовать следующий сценарий:
- Аккаунты пользователей хранятся в базе данных. Список содержит учетные записи, прошедшие проверку подлинности Windows, и учетные записи, прошедшие проверку подлинности SQL Server. Пароли не хранятся в базе данных (для учетных записей, прошедших проверку подлинности Windows, для проверки учетных данных используется система windows, учетные записи, прошедшие проверку подлинности SQL, проверяются сервером SQL)
- Создана служба WCF, в которой пользователи проходят проверку подлинности с использованием настраиваемого поставщика проверки подлинности, чтобы иметь возможность обрабатывать учетные записи Windows и SQL. Поэтому в службе доступны как имя пользователя (домен \ имя пользователя или просто имя пользователя), так и пароль.
- Уже существует специальный API, который содержит класс, который инкапсулирует обработку соединения с сервером базы данных. В случае учетной записи Windows, я предоставляю строку подключения к классу, который использует встроенную защиту. В случае учетной записи SQL я строю строку подключения, содержащую имя пользователя и пароль учетной записи SQL. Было бы удобно создать объект класса в начале запроса и избавиться от него, когда запрос закончится.
- Чтобы сценарий учетной записи Windows работал, я хочу выдать себя за учетную запись Windows на время запроса.
То, что я ищу, это способ реализации олицетворения в одном месте вместо каждого метода обслуживания в отдельности.
Как я могу реализовать это в сервисе?
Спасибо за вашу помощь,
Markus