나는 authorize 속성을 기반으로 MvcSiteMapProvider를 사용하고 있으며 AuthorizeAttribute
에서 파생 된 새 클래스를 도입 할 때까지 괜찮 았습니다. 주요 차이점은 생성자 서명에 있습니다AuthorizeAttribute 생성자에 매개 변수를 추가하면 MvcSiteMapProvider에서 오류가 발생합니까?
public MyAuthorizeAttribute(param RoleCode[] roles) {
Roles = string.join(",", roles.Select(r => r.ToString());
}
그리고 ... MvcSiteMapProvider 같이 예상치 못한 결과 : MyAuthorizeAttribute
로 표시 작업 만이 눈에 보이지 않는되었다. 이 생성자를 비활성화하여 확인했습니다. 생성자에 매개 변수를 추가하기 전에 모든 것이 변경되었습니다. 또한 - params
특정 아닙니다 - 모든 매개 변수 (이벤트 int)는 이러한 동작을 유발합니다.
MvcSiteMapProvider 소스에서 알 수 있듯이 권한 부여 특성을 에뮬레이트하는 코드를 내 보냅니다. 외부 코드로 생성 된 어셈블리를 저장할 수없는 것처럼 보입니다. 해결 방법이 있다는 것을 알고 있습니다. 어떤 종류의 열거 형 속성을 사용하지만 생성자 매개 변수로 작업하게 만드는 방법에 대한 제안이 있습니까? MvcSiteMapProvider가 왜 그렇게 작동하는지 알고 있습니까?