Формировать контекст безопасности при каждом http запросе мне кажется неразумным с точки зрения производительности.
Альтернативный вариант — использовать Session_Start в Global.asax. Если ли в этом случае противопоказания?
public IPrincipal User
{
get
{
if (this.HttpContext != null)
return this.HttpContext.User;
else
return (IPrincipal) null;
}
}
Есть таблица dbUsers в базе. В EF создаются классы dbUsers. Неким образом создается класс User. Слой данных работает с объектами EF а пользователю (контроллеру) отдает красивые чистые объекты класса User без лишней информации.
Есть таблица dbUsers в базе. В EF создаются классы dbUsers. Слой данных напрямую работает с этими объектам и передает их в контроллер. Т.е. контроллер работает с объектами типа dbUsers…
Хочется отделить мух от котлет и не сваливать все в один класс, но не хочется публиковать отдельные сервисы для каждого плагина.
На клиенте такой способ позволяет добиться желаемого — там автоматически генерируется несколько клиентов для одного сервиса, но на сервере все равно все сваливается в один класс т.к. он реализует все интерфейсы.