사용자 정의 authorizeattribute 작동하지 내 메인 사이트 컨트롤러에 적용 :권한 부여 내가 표시에게 "권한이 없습니다"라는 메시지를 수있는 컨트롤러로 리디렉션하기위한 것입니다 내 MVC 컨트롤러에 대한 매우 간단한 권한 부여 특성을 만들었습니다
[ReportAuthorize([email protected]"Domain\GroupName")]
public class ReportController : Controller
{
//etc
}
@ "Domain \ GroupName"에도 불구하고 퇴장합니다. 실제로 사용자 = @ "Domain \ MyUserName"으로 변경하면 여전히 실패합니다!
사이트에 대해 사용하도록 설정된 IIS 설정 익명 인증을 추적했습니다. 아쉽게도이 프로젝트는 올바른 특성을 갖고 있지 않은 다른 많은 컨트롤러가있는 더 큰 MVC 프로젝트의 일부이기 때문에 프로덕션 시스템에서 익명 액세스를 비활성화 할 수 없습니다. 그러나 IIS에서 로컬로 변경하면 정상적으로 작동합니다.
는 지금은 정상적인 권한 부여 속성을 변경하는 경우 :
[Authorize(Roles = @"Domain\GroupName")]
public class ReportController : Controller
{
//etc
}
나는 (내가 권한이없는 사용자가 연결을 시도 할 때를위한 특별한 행동을 정의하지 않았기 때문에 나는 가정)에서 얻을.
이 속성 상황을 해결하기위한 나의 옵션에는 어떤 것이 있습니까? 익명 성을 얻기 위해 사용자를 적절히 인증하기 전에 ReportsAuthorize 특성을 가져와야합니다.
표준 authorizeattribute의 문제점은 groupname을 내려 놓으면 내 자격 증명에 문제가 있지만 제대로 인증하지 못하고 취소 할 때까지 반복적으로 묻는 것입니다. –
@CBauer - 프롬프트가 문제인 경우 사용자 정의 속성으로 이동하십시오.내 경험으로는 문제가되지 않았습니다. MvcSiteMapProvider와 같은 보안 트리밍 기능을 사용하여 사용자가 승인되지 않은 URL에 대한 링크를 볼 수 없기 때문입니다. 따라서 사용자는 프롬프트에 맞닥 뜨리는 경우가 거의 없습니다. – Joe
안타깝게도 보안을 위해 노력하는 페이지는 직접 링크로 배포되는 사이트입니다. 역할을 타겟팅하고 해당 역할이없는 사람들에게 "귀하는 액세스 할 수 없습니다. 이 리소스 "페이지. –