Олицетворение пользователя с Entity Framework - PullRequest
1 голос
/ 23 декабря 2009

Итак, у нас есть веб-приложение, работающее с платформой управления данными. Мы хотели бы выдать себя за текущего пользователя, когда мы обращаемся к БД. Мы не заинтересованы в настройке олицетворения в нашей веб-конфигурации.

В идеале использовать что-то вроде этого: http://geekswithblogs.net/jkurtz/archive/2007/08/27/114992.aspx, когда мы собираемся получить доступ к данным.

ОБНОВЛЕНО: я ищу способ абстрагировать этот код, чтобы мне не приходилось использовать его при каждом вызове функции репозитория.

1 Ответ

2 голосов
/ 23 декабря 2009

Строка EF-соединения должна быть настроена для использования доверенного соединения.

Вам не нужно настраивать олицетворение в своем файле web.config, но вам нужно использовать проверку подлинности Windows.

Тогда просто сделайте это:

using (((WindowsIdentity)HttpContext.Current.User.Identity).Impersonate())
using (var dbContext = new MyEntityFrameworkContainer())
{
    ...
}

Любой код внутри фигурных скобок операторов using будет выполняться как аутентифицированный пользователь.

...