我有一个SharePoint门户,当**“启用Windows身份验证”/“集成Windows身份验证”被激活(我们使用“基于声明的身份验证”)时,该门户可以正常工作,我可以浏览SharePoint门户,并且可以从我的自定义c#应用程序(以及从Postman)调用“https://my-shp/_vti_bin/Lists. asmx”。
当我激活“受信任的身份提供商”/“SAML提供商”**(Windows身份验证和SAML提供商均已激活)时,问题开始出现。现在,浏览门户正常工作(当我尝试浏览时,出现一个页面,询问我是否要使用“Windows身份验证”或“SAML提供商”,我选择“Windows身份验证”,然后被重定向到门户),但当我尝试从我的.net自定义应用程序调用“https://my-shp/_vti_bin/Lists. asmx”时,我得到“403禁止”,当我尝试使用Postman时,我得到相同的响应,并且在响应的标头中,我得到以下条目:
X-MSDAVEXT错误:917656;访问被拒绝。在打开此位置的文件之前,您必须先浏览到网站并选择选项以自动登录。
我认为SharePoint希望我告诉他使用哪种方法(“Windows身份验证”或“SAML提供程序”),例如当我尝试浏览门户时,但在调用Web服务的情况下,我不知道如何告诉他使用“Windows身份验证”(如果未指定方法,则强制使用该方法)。SharePoint自己的Web服务(如_vti_bin/Lists)会发生此问题。asmx以及SharePoint门户内托管的所有自定义Web服务。
你知道我错过了什么吗
2条答案
按热度按时间91zkwejq1#
感谢您的回复,您的建议可以解决问题,因此我将您的答案设置为正确答案,但我们使用另一种方式修复了它,如下所述:
https://learn.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/hh124553(v=office.14)
为了强制sharepoint使用windows身份验证,我们应该将以下条目添加到请求“X-FORMS_BASED_AUTH_ACCEPTED”的头中,值为“f”,为了不对调用Web服务的所有位置进行更改,我们添加了一个httpmodule,以便将该条目注入到所有http请求中。
bxfogqkk2#
作为一种解决方法,您可以扩展web应用程序,并在新站点上仅使用windows身份验证。
https://learn.microsoft.com/en-us/SharePoint/administration/extend-a-claims-based-web-application