Web services 使用基于声明的身份验证的web服务-SoapServerException

Web services 使用基于声明的身份验证的web服务-SoapServerException,web-services,sharepoint,soap,claims-based-identity,Web Services,Sharepoint,Soap,Claims Based Identity,我们有一个定期从SharePoint列表中提取数据并与另一个应用程序集成的应用程序。我们已经使用了一年多,没有任何问题。然而,最近,我们将农场改为使用基于声明的身份验证。。。然后应用程序就出现了 我的代码在较高级别上执行以下操作: SPWebRefs.Lists spl = new SPWebRefs.Lists(); spl.Credentials = System.Net.CredentialCache.DefaultCredentials; //Build request here

我们有一个定期从SharePoint列表中提取数据并与另一个应用程序集成的应用程序。我们已经使用了一年多,没有任何问题。然而,最近,我们将农场改为使用基于声明的身份验证。。。然后应用程序就出现了

我的代码在较高级别上执行以下操作:

SPWebRefs.Lists spl = new SPWebRefs.Lists();
spl.Credentials = System.Net.CredentialCache.DefaultCredentials;

//Build request here


XmlNode listItems = spl.GetListItems("My list", view, query, viewFields, null, queryOptions, null);
我得到一个“Microsoft.SharePoint.SoapServer.SoapServerException”类型的异常被抛出“异常就在那里

我在看Fiddler,我得到了401挑战,紧接着是200回答,我想这意味着我加入了。但是一旦调用GetListItems方法,我就会得到一个500错误

我已经在一个2010年的实例和一个2013年的服务器场上进行了尝试,我们正在准备部署这个服务器场。同样的情况

目前我正在使用4.0框架,但我已经考虑过使用4.5框架进行测试,其中包括一些用于声明身份验证的新API。那会有什么不同吗


任何想法都将不胜感激。非常感谢

您必须首先调用SharePoint的身份验证Web服务。您将从中获得一个cookie,您可以将其传递到Lists Web服务


请看这里的示例:

谢谢@Doomdrake,我试过了。然而,当我点击authwebservice时,我得到了401响应(并且凭据是正确的——使用domain\user、user和声明语法domain\user对它们进行了测试)(.另外,你的链接涉及FBA场景。我有什么遗漏吗?谢谢!你能更新你的代码并标记异常的位置吗?authentication.aspx服务不需要任何身份验证,所以401很奇怪。我根据你提供的示例测试了代码:使用(AuthenticationSvc.Authentication authSvc=new AuthenticationSvc.Authentication()){authSvc.Url=@“https:\\myURLrightHere”;authSvc.CookieContainer=new System.Net.CookieContainer();authSvc.AllowAutoRedirect=true;AuthenticationSvc.LoginResult=authSvc.Login(“用户名”、“密码”);…}这就是引发异常的地方——尝试实例化结果。(很抱歉,这里有一行代码。似乎无法让它超过一行。:)