Чтобы избежать необходимости передавать данные, которые идут на главной странице моего сайта, перед каждым просмотром в каждом контроллере, я создал ApplicationController, который устанавливает данные в своем конструкторе ... проблема с этим подходом заключается в том, что один из viewdatas, которые я должен передать, - это URL профиля. Изображение текущего пользователя, вошедшего в систему.
[Authorize(Roles = "Administrator")]
public abstract class AdministratorController : Controller
{
private IPortalAdministratorServices _servicioPortalAdministrator;
public AdministratorController()
{
_servicioPortalAdministrator = new PortalAdministratorServices();
ViewData["associates"] = _servicioPortalAdministrator.getAssociates();
ViewData["picture"] = _servicioPortalAdministrator.GetPic();
public AdministratorController(IPortalAdministratorServices service)
{
_servicioPortalAdministrator = service;
}
}
и поэтому контроллерам моей компании, которые наследуются от AdministratorController, теперь не нужно устанавливать все эти данные при каждом вызове просмотра.
[Authorize(Roles = "Administrator")]
public class CompaniesController : AdministratorController
{
private ICompaniasServices _service;
public CompaniesController()
{
_service = new CompaniasServices(new ModelStateWrapper(this.ModelState));
}
public CompaniesController(ICompaniasServices service)
{
_service = service;
}
Проблема заключается в следующем:
Когда я пытаюсь получить доступ к контроллеру компаний вручную без фактического входа в метод GetPic (), на самом деле я не могу получить URL-адрес изображения, потому что никто не вошел в систему ... и этот метод вызывается несмотря на авторизацию атрибут .... так что теперь, даже после входа в ViewData для картинки URL был постоянно установлен в "unknown.png"
Часть этого кода не моя .. Я только что обнаружил ошибку, но не могу понять, как ее исправить.