通过DOTCMIS连接到Sharepoint 2010:异常身份验证提供程序

时间:2012-08-16 11:57:40

标签: c# apache sharepoint cmis dotcmis

我正在尝试使用C#中的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提供程序:值不能为null。 参数名称:type ---&gt; System.ArgumentNullException:值不能为null。 参数名称:类型    在System.Activator.CreateInstance(Type type,Boolean nonPublic)    在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 cache)    在TPR.SIF.WorkflowActivity.SessionService.CreateNewSession(String dmWebServiceUrl,String userName,String password)    在TPR.SIF.WorkflowActivity.SifService.SetUpServices(CodeActivityContext codeActivityContext)    在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);

有谁知道为什么无法创建&#34; DotCMIS.Binding.NtlmAuthenticationProvider&#34;

非常感谢。

肖恩。

1 个答案:

答案 0 :(得分:0)

NTLM支持将随DotCMIS 0.5发布。如果您使用的是DotCMIS 0.4,则无法使用。