У меня следующая проблема:
У нас есть приложение ASP.NET MVC 2 RC 2, которое программно олицетворяет учетную запись AD, которую пользователь указывает при входе в систему. Эта учетная запись используется для доступа к БД. Сначала у нас был олицетворяющий код в begin_request, и мы отменяли олицетворение в end_request, но когда мы попытались использовать IIS 7.5 в интегрированном режиме, мы узнали, что невозможно выполнить олицетворение в Global.asax, поэтому мы пробовали разные вещи .
Мы успешно переместили наш код из BeginRequest в событие ActionExecuting, а EndRequest в ResultExecuted, и теперь около 80% нашего кода работает.
Мы только что обнаружили, что, поскольку мы передаем объекты Entity Framework в качестве моделей для наших представлений, эти оставшиеся 20% не будут работать, поскольку некоторые свойства навигации не загружаются, когда представление начинает свое выполнение, поэтому мы получаю исключения подключения от Sql Server.
Есть ли какое-либо событие или метод, который выполняет ПОСЛЕ представления, чтобы мы могли отменить олицетворение в нем? Мы думали, что ResultExecuted сделает это, но это не так.
Нам сказали, что передача простых сущностей в представление в качестве моделей не является хорошей идеей, но у нас МНОЖЕСТВО представлений, которые могут иметь эту проблему, и нет автоматизированного способа узнать это. Если некоторые из вас могут объяснить, почему это не очень хорошая идея, возможно, мы сможем убедить команду исправить это!