이것은 하늘에 파이 일지 모르지만 사용자 지정 컨트롤러 특성으로 다음 작업을 수행 할 수 있는지 궁금합니다..NET MVC 3 사용자 지정 컨트롤러 특성
내 컨트롤러의 대다수는 "r"이라는 URL 매개 변수를 컨트롤러 내의 각 동작에 전달합니다. "r"은 내 데이터베이스의 경주 테이블에있는 경주 id에 묶여 있습니다.
컨트롤러 동작이 호출 될 때마다 자동으로 "r"의 존재 여부를 확인하고 데이터베이스에 쿼리하여 "r"이 로그인 한 사용자의 것인지 확인하고 설정합니다 ViewBag.RaceId라는 이름의 viewbag 변수는 "r"과 같습니다.
이러한 조건 중 하나라도 충족되지 않으면 다시 로그인 페이지로 리디렉션됩니다.
가능한 한 내 코드를 작성하려고합니다.
모든 안내가 크게 감사하겠습니다.
사용자 정의Authorize
속성을 쓸 수
Pure Awesome. ViewBag에 관한 하나의 질문. 내 사용자 지정 특성에 추가 된 : httpContext.Items.Add ("RaceId", r.ToString()); 내 재정의 OnAuthorization에 filterContext.Controller.ViewBag.RaceId = filterContext.HttpContext.Items [ "RaceId"];를 추가했습니다. 그 맞습니까? OnAuthorization 무시. – Mike
신경 쓰지 마세요. 내가 ilterContext.Controller.ViewBag.RaceId = filterContext.HttpContext.Items [ "RaceId"] 전에 base.OnAuthorization (filterContext); 이제 작동합니다! – Mike
'httpContext.Items'을 통해 데이터를 전달하기 위해 Darin의 제안을 사용하는 사람에게 주목하십시오. 'httpContext.Items'을 확인하기 전에'OnAuthorization'이'base.OnAuthorization (filterContext)'를 호출해야합니다. 내가이 일을하기 전까지는 제대로 작동하지 못했습니다. –