У меня есть приложение asp.net mvc, в котором реализовано членство. Таким образом, пользователь должен войти в систему. Каждый пользователь принадлежит к организации (мультитенантность).
Как бы я обработал параметр организации глобально? Я подумал, что это может быть хорошо для глобального фильтра, потому что все данные должны быть отфильтрованы для данной организации. И организация связана с именем пользователя, но не в той же таблице.
например, у меня есть действие индекса, подобное этому
public ActionResult Index()
{
var result = _repository.GetListByOrganisation(organisation);
return View(result);
}
Я думал о том, чтобы иметь глобальный атрибут, который запрашивает базу данных для организации на основе имени пользователя. Поскольку мой контроллер уже содержит атрибут авторизации, у меня есть имя пользователя. Было бы неплохо кэшировать организацию (session, controllercontext) и не запрашивать организацию из db при каждом запросе.
Это способ реализовать что-то подобное? Или есть другие способы, которые будут лучше? И как я могу установить свойство в контроллере/контексте контроллера из фильтра?
Так что любые мысли по этому поводу, а также комментарии были бы замечательными...