Partager via


SharePoint 2010의 사용자 지정 클레임 공급자에서 사용자 선택을 선택하면 이름이 사라짐

최초 문서 게시일: 2011년 6월 28일 화요일

최근 개인적으로 추적하기가 꽤나 까다로운 문제를 겪어, 이 블로그를 통해 해당 내용과 해결 방법을 여러분과 공유하고자 합니다. 이 문제를 해결하기 위해 사용자 지정 클레임 공급자를 개발하여 SPTrustedIdentityTokenIssuer의 기본 클레임 공급자로 사용했습니다. 여기에 대한 설명은 https://blogs.technet.com/b/speschka/archive/2010/04/28/how-to-override-the-default-name-resolution-and-claims-provider-in-sharepoint-2010.aspx(영문일 수 있음)에 나와 있습니다. 일부 경우에는 이 해결 방법이 작동합니다. 즉, 원하는 내용을 검색하면 일치하는 항목 목록이 표시되고, 여기서 항목 하나를 선택해 확인 단추를 클릭하는 식입니다. 이 과정에서 모든 작업이 정상적으로 수행됩니다. 대화 상자가 없어지고 확인된 이름이 컨트롤에 해당 유형으로 표시됩니다. 또한 FillResolve 메서드에 대해 중단점을 설정하고 단계별로 작업을 진행할 수도 있습니다.

그러나 다음과 같은 동작이 발생하는 경우도 있습니다.

  • 사용자 선택 대화 상자가 닫힙니다.
  • 컨트롤의 유형이 비어 있고 확인 여부에 관계없이 아무 내용도 표시되지 않습니다.
  • FillResolve에 중단점을 설정해도 해당 중단점이 적중되지 않습니다.
  • ULS 로그에 오류가 표시되지 않습니다.

이 문제에 대해 제가 최종적으로 확인한 사항은, 사용자 지정 클레임 공급자가 SPTrustedIdentityTokenIssuer에 해당하는 매핑이 없는 클레임 유형을 추가한다는 것이었습니다. 예를 들어 클레임 유형이 https://schemas.steve.com/foo인 클레임이 생성되는데, SPTrustedIdentityTokenIssuer의 클레임 매핑 목록에는 https://schemas.steve.com/foo에 대한 매핑이 없는 식입니다. 클레임 매핑 및 작성 방법 예제는 https://blogs.technet.com/b/speschka/archive/2010/02/17/creating-both-an-identity-and-role-claim-for-a-sharepoint-2010-claims-auth-application.aspx(영문일 수 있음)를 참조하십시오. 따라서 SharePoint에서 매핑되지 않는 것으로 인식하는 클레임이 추가되는 대신, 파이프라인에서 해당 클레임이 없어지고 사용자에게는 빈 화면만 표시되며 오류 메시지도 생성되지 않는 것입니다. 따라서 문제를 추적하는 데 시간이 매우 오래 걸릴 수 있습니다.

이러한 문제를 해결하기 위해 SPTrustedIdentityTokenIssuer를 삭제한 다음, 사용자 선택에서 없어진 클레임 유형에 대한 새 매핑을 추가하여 SPTrustedIdentityTokenIssuer를 새로 만들었습니다. 그런 후에 코드를 다시 실행하자 아무런 문제 없이 정상적으로 실행되었습니다. 즉, 문제 자체와 해결 방법이 확인된 것입니다.

이 문서는 번역된 블로그 게시물입니다. 원본 문서는 Name Disappears After Selecting in People Picker with Custom Claims Provider in SharePoint 2010을 참조하십시오.