Использование определенной учетной записи AD с Entity Framework

#c# #entity-framework #ef-code-first

#c# #entity-framework #ef-code-first

Вопрос:

Мы используем Entity Framework (сначала код 4.1) в некоторых ASP.NET Веб-сайты MVC, использующие проверку подлинности Windows и олицетворение.

Проблема в том, что мне нужно подключиться к SQLServer с определенной учетной записью AD (а не с олицетворенной). Как я могу это сделать с помощью EF?

Ответ №1:

На самом деле это не связано с EF, потому что EF просто использует ADO.NET для подключения к базе данных и ADO.NET использует либо текущую учетную запись (интегрированная безопасность), либо учетную запись SQL (что кстати. более понятное решение вашей проблемы).

Если вам нужно использовать специальную учетную запись, вы должны вручную олицетворять учетную запись для некоторых операций, что на самом деле не представляет большой проблемы, потому что .NET не предоставляет способа прямого входа в систему от имени другого пользователя, чтобы получить ее удостоверение Windows, необходимое для олицетворения. Вы должны использовать небольшой P / Invoke для WinAPI.

Комментарии:

1. имхо, это проблема EF, поскольку EF обертывает управление соединениями. Мне нужно каким-то образом внедрить создание соединения, чтобы иметь возможность использовать олицетворение

2. @jgaufin: DbContext перегружает конструктор, используя существующую коллекцию, поэтому вы можете легко ее внедрить.

3. Пометив это как ответ, поскольку это заставило меня понять, что это не проблема. Я перекодировал части нашей платформы, чтобы не полагаться на олицетворение (и использовать класс-оболочку p / invoke, когда это действительно необходимо).

Ответ №2:

ЕСЛИ вы хотите это сделать, вам придется вручную управлять подключениями EF и вручную вводить необходимую учетную запись / данные для входа.

Некоторая полезная информация о том, как это сделать: