【问题标题】:Connecting to Sharepoint 2010 via DOTCMIS : exception authentication provider通过 DOTCMIS 连接到 Sharepoint 2010:异常身份验证提供程序
【发布时间】:2012-08-16 11:57:39
【问题描述】:

我正在尝试使用 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:无法加载身份验证提供程序:值不能为空。 参数名称:类型---> System.ArgumentNullException:值不能为空。 参数名称:类型 在 System.Activator.CreateInstance(类型类型,布尔非公共) 在 DotCMIS.Binding.Impl.CmisBinding..ctor(IDictionary2 sessionParameters, AbstractAuthenticationProvider authenticationProvider) --- End of inner exception stack trace --- at DotCMIS.Binding.Impl.CmisBinding..ctor(IDictionary2 sessionParameters, AbstractAuthenticationProvider authenticationProvider) 在 DotCMIS.Client.Impl.CmisBindingHelper.CreateAtomPubBinding(IDictionary2 parameters, AbstractAuthenticationProvider authenticationProvider) at DotCMIS.Client.Impl.SessionFactory.GetRepositories(IDictionary2 参数,IObjectFactory objectFactory,AbstractAuthenticationProvider authenticationProvider,ICache 缓存) 在 TPR.SIF.WorkflowActivity.SessionService.CreateNewSession(字符串 dmWebServiceUrl,字符串用户名,字符串密码) 在 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);

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

非常感谢。

肖恩。

【问题讨论】:

标签: c# apache sharepoint cmis dotcmis


【解决方案1】:

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

【讨论】:

  • 谢谢!是的,我刚刚看到了这个评论(从 0.5 开始)= DotCMIS.Binding.NtlmAuthenticationProvider)。你有 0.5 的下载链接吗?
  • DotCMIS 0.5 尚未发布。您必须获取源代码并自己构建它。
  • 谢谢。我刚刚在这里找到了 2 个更新的课程:issues.apache.org/jira/browse/CMIS-531
猜你喜欢
  • 1970-01-01
  • 2018-10-31
  • 1970-01-01
  • 2017-12-25
  • 1970-01-01
  • 2015-08-24
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多