모든 컨트롤러의 모든보기 전에 내 사이트의 마스터 페이지에있는 데이터를 전달하지 않아도되도록 생성자에 데이터를 설정하는 ApplicationController를 만들었습니다. 이 접근 방식의 문제점은 내가 통과해야하는 viewdatas 중 하나가 현재 로그인 한 사용자의 프로필 Image의 URL이라는 것입니다.asp.net mvc 및 MasterData의 ViewData에 대한 도움말
[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;
}
}
및 관리자 회사 관리자가 상속하는 컨트롤러는 이제 모든보기 호출시 모든 데이터를 설정해야합니다.
[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을 얻을 수있을 로그인하지 않고 회사 컨트롤러에 액세스하려고 ..이 메소드는 Authorize 속성에도 불구하고 호출됩니다 .... 이제는 그림 URL의 ViewData에 로그인 한 후에도 "unknown.png"로 영구적으로 설정되었습니다.
이 코드 중 일부는 isnt mine .. 나는 방금 버그를 발견했지만 그것을 고칠 방법을 알아낼 수 없다.
예, 모든 생성자 명령을 실행 한 후에 만 리디렉션됩니다. – ignaciofuentes