2017-09-13 8 views
0

내 C# 응용 프로그램이 Sharepoint에 배포되었고 C#의 EMC DOCUMENTUM D2에서 문서를 다운로드하고 SharePoint 문서 라이브러리에이 파일을 업로드하려고합니다. 단일 서명 on.Kerberos 인증을 kerberos 인증을 사용하고 있습니다. 그러나 문서를 검색 할 때 D2에서 문서를 다운로드하려고하면 서비스 계정이 코드를 사용하여 문서를 다운로드하는 중 (서비스 계정을 사용할 때 Documentum의 들어오는 트래픽 로그 참조).Kerberos 인증을 사용하는 동안 EMC DOCUMENTUM D2에서 내 C# 코드로 문서를 다운로드하려면 어떻게합니까?

IObjectService objectService = this.GetRemoteServiceDownload<IObjectService>(moduleName); 

기능 정의.

protected IObjectService GetRemoteServiceDownload<IObjectService>(string serviceModule) 
    { 
     KerberosTokenHandler handler = new KerberosTokenHandler(); 
     try 
     { 
      using (KerberosClientContext kerberosClientContext = new KerberosClientContext(servicePrincipalName, true, ImpersonationLevel.Delegation)) 
      { 
       try 
       { 
        KerberosBinarySecurityToken token = new KerberosBinarySecurityToken(kerberosClientContext.InitializeContext(), KerberosValueType.KERBEROSV5_AP_REQ); 
        handler.SetBinarySecurityToken(token); 
        List<IEndpointBehavior> handlers = new List<IEndpointBehavior>(); 
        handlers.Add(handler); 
        handlers.Add(new DFSBindingBehaviour(0, 10, 0, 0, 10, 0, 40960, 32, 16384, 16384, 20000000)); 
        var remoteService = ServiceFactory.Instance.GetRemoteService<IObjectService>(serviceContext, serviceModule, address, handlers); 
        return remoteService; 
       } 
       catch (Exception ex) 
       { 
        Service.LoggerService.SetError(new Exception("In GetRemoteService" + ex.Message, ex)); 
        return default(IObjectService); 
       } 
      } 

     } 
     catch (Exception ex) 
     { 
      Service.LoggerService.SetError(new Exception("In GetRemoteService using" + ex.Message, ex)); 
      return default(IObjectService); 
     } 
    } 

답변

0

남자들은 문제를 해결할 수있었습니다. 사실 그것은 kerberos 문제가 아니 었습니다. 실제로 호출 함수의 위치 문제였습니다. 는 Kerberos 인증을 시작한 기능 때문에 Kerberos 인증 문서를 다운로드 서비스 계정을 활용 한이의

using(SPSecurity.RunWithElevatedPrivileges) 
{ 

} 

이내였다.