2

나는 잘못된 경로를 따라 가고있는 것처럼 느껴지고 누군가가 약간의 경로 수정을 할 수 있기를 바랬습니다!Windows 인증을 클레임과 함께 사용

Windows 인증을 사용하는 웹 앱을 만들고 있습니다. 그러나 SQL 데이터베이스에 저장할 계획 인 특정 Windows 사용자에게 사용자 지정 클레임/역할을 할당하려고합니다.

이 방법은 내 응용 프로그램의 web.config에서 Windows 인증을 사용하지만 사용자 지정 클레임 (데이터베이스에서 직접 오는)을 주/정체. 그런 다음 AuthorizationManager는 특정 컨트롤러 작업에 대한 권한 부여를 처리합니다.

내가 지금 당면하고있는 문제는 인증 및 권한 부여 관리자가 호출되지 않는다는 것입니다. 내가 뭘 놓치고 있는지 잘 모르겠다. (그들은 web.config에 등록되어있다.) Windows 인증을 사용하고 있기 때문에 의심 스럽다. 또한 새 특성을 만들어야하기 때문에 내 Authorize 특성이 AuthorizationManager를 호출하지 않습니다.

실용 가능한 경로입니까, 아니면 대신 사용자 정의 RoleProvider를 작성해야합니까?

답변

1

ClaimsAuthenticationManager가 자동으로 호출되지 않습니다. FAM이이를 호출합니다.

이렇게 말했습니다. - 직접 전화 할 수 있습니다. Post_AuthenticateRequest에 저장 한 다음 SAM을 사용하여 쿠키를 설정하십시오. 그게 전부 가능.

+0

고마워요! 나는 이것이 어떻게 작동하는지 완전히 모르겠다. Application_PostAuthenticateRequest 메서드에서 내 ClaimsAuthenticationManager를 호출 할 수 있었고 SAM을 사용하여 쿠키에 쓸 수 있습니다. SAM은 이후의 모든 요청에 ​​대해 쿠키의 클레임을 어떻게로드합니까? 그리고이 Application_PostAuthenticateRequest는 모든 요청마다 호출됩니다. 애플리케이션에 미치는 영향을 줄이려면 어떤 방법이 있습니까? 내 ClaimsAuthenticationManager는 이미지 요청에도 데이터베이스에서 역할을 검색하고 있습니다! 예제가 있다면 에이스가 될 것입니다! –

+0

나는 여기서 좋은 해결책이라고 생각하는 것을 발견했다 : http://stackoverflow.com/questions/16904639/simple-claims-transformation-and-caching-w-windows-authentication –

+1

쿠키를 작성하고 SAM을 포함해야한다. 모듈을 읽습니다. 첫 번째 요청에서 WindowsPrincipal을 가져야합니다. 쿠키를 작성한 후에는 평범한 ClaimsPrincipal을 가져야합니다. 그것이 당신을 최적화 할 수있는 방법입니다. – leastprivilege