2012-08-16 77 views
1

我正尝试使用C#中的DOTCMIS连接到SharePoint 2010。 在一个非常类似的方式对这个问题:通过DOTCMIS连接到Sharepoint 2010:异常身份验证提供商

Connecting via CMIS (dotCMIS) to SP2010: exception unauthorised

(但是,我的代码是在MSCRM 2011自定义工作流活动运行)

我的代码是:

 var parameters = new Dictionary<string, string>(); 

     parameters[SessionParameter.BindingType] = BindingType.AtomPub; 
     parameters[SessionParameter.AtomPubUrl] = "http://mySPServer/sites/scans/_vti_bin/cmis/rest/MyRepositoryIDGUID?getRepositoryInfo"; 
     parameters[SessionParameter.User] = "MyUser"; 
     parameters[SessionParameter.Password] = "MyPassword"; 
     parameters[SessionParameter.AuthenticationProviderClass] = "DotCMIS.Binding.NtlmAuthenticationProvider"; 

     var sessionFactory = SessionFactory.NewInstance(); 
     return sessionFactory.GetRepositories(parameters)[0].CreateSession(); 

然而每当我运行它我目前得到以下例外:

Sif常规错误:DotCMIS.Exceptions.CmisRuntimeException:无法加载authentictaion提供程序:值不能为空。 参数名称:type ---> System.ArgumentNullException:值不能为空。 参数名称:在System.Activator.CreateInstance(类型类型,布尔非公开) 在DotCMIS.Binding.Impl.CmisBinding..ctor(IDictionary的2 sessionParameters, AbstractAuthenticationProvider authenticationProvider) --- End of inner exception stack trace --- at DotCMIS.Binding.Impl.CmisBinding..ctor(IDictionary 2个sessionParameters,AbstractAuthenticationProvider的AuthenticationProvider) 在DotCMIS.Client.Impl.CmisBindingHelper类型 。 CreateAtomPubBinding(IDictionary的2 parameters, AbstractAuthenticationProvider authenticationProvider) at DotCMIS.Client.Impl.SessionFactory.GetRepositories(IDictionary 2参数,IObjectFactory objectFactory对象,AbstractAuthenticationProvider的AuthenticationProvider,ICACHE缓存) 在TPR.SIF.WorkflowActivity.SessionService.CreateNewSession(字符串dmWebServiceUrl,用户名字符串,字符串密码) 在TPR.SIF.WorkflowActivity.SifService.SetUpServices(CodeActivityContext codeActivityContext) at TPR.SIF.WorkflowActivity.SifService.Execute(CodeActivityContext codeActivityContext)

错误发生在下面一行:

sessionFactory.GetRepositories(parameters)[0].CreateSession(); 

这就要求在CMIS库这一行

 if (sessionParameters.TryGetValue(SessionParameter.AuthenticationProviderClass, out authenticationProviderClass)) 
      { 
       try 
       { 
        Type authProvType = Type.GetType(authenticationProviderClass); 
        authenticationProvider = (AbstractAuthenticationProvider)Activator.CreateInstance(authProvType); 

有谁知道为什么不能创建“DotCMIS.Binding.NtlmAuthenticationProvider”

非常感谢。

肖恩。

+0

我也有一个相关的错误,我也需要这个帮助:) http://stackoverflow.com/questions/29382247/getrepositoriesparameters-throws-cmisruntimeexception – 2015-04-01 03:48:43

回答

0

NTLM支持将与DotCMIS 0.5一起发布。如果您使用的是DotCMIS 0.4,则无法工作。

+0

谢谢!是的,我刚刚看到这个评论(自0.5)= DotCMIS.Binding.NtlmAuthenticationProvider)。你有0.5的下载链接? – Sean 2012-08-16 13:30:51

+0

我无法看到http://chemistry.apache.org/dotnet/dotcmis.html?谢谢 – Sean 2012-08-16 13:35:16

+0

DotCMIS 0.5尚未发布。你必须抓住源代码并自己构建它。 – 2012-08-16 13:44:52

相关问题