c# - HTTP 请求未经客户端身份验证方案 'Negotiate' 授权。身份验证 header

标签 c# asp.net wcf sharepoint ssl

我正在尝试从我们的办公室共享点调用网络服务。当我从我们的测试项目中调用它并且我可以访问 url 并通过浏览器检索信息时它起作用但是当我通过网络服务调用它时我收到以下错误:

System.ServiceModel.Security.MessageSecurityException:HTTP 请求未经客户端身份验证方案“协商”授权。从服务器收到的身份验证 header 是 'Basic realm=

当我们登录到 Sharepoint 时,我们使用我们的 Windows 凭据自动登录。

我的网络配置如下所示:

<binding name="ListsSoap" closetimeout="00:01:00" opentimeout="00:01:00" receivetimeout="00:10:00"
    sendtimeout="00:01:00" allowcookies="false" bypassproxyonlocal="false" hostnamecomparisonmode="StrongWildcard"
    maxbuffersize="65536" maxbufferpoolsize="524288" maxreceivedmessagesize="65536"
    messageencoding="Text" textencoding="utf-8" transfermode="Buffered" usedefaultwebproxy="true">

  <readerQuotas maxDepth="32" maxStringContentLength="8192"
     maxArrayLength="16384"
                       maxBytesPerRead="4096"
    maxNameTableCharCount="16384" />
  <security mode="Transport">
    <transport clientCredentialType="Windows" proxyCredentialType="Basic" realm="" />
    <message
    clientCredentialType="UserName" algorithmSuite="Default" />
  </security>
</binding>

该 url 使用 SSL(即 https://blahblah.com.sharepoint.emea.microsoftonline.com/Lists/ ....)

我几乎使用了所有组合:使用 ntlm 进行传输,使用 basic 进行 TransportWithMessageCredential 等,我要么收到错误消息,提示它需要 http,但得到的是 https。

感谢帮助

E

最佳答案

您的客户端和服务器正在使用不同的身份验证方案。服务器使用“基本身份验证”,而您的客户端使用“协商”,我猜这是 Windows 身份验证。

关于c# - HTTP 请求未经客户端身份验证方案 'Negotiate' 授权。身份验证 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7703587/

相关文章:

c# - WCF JSON POST 请求,单个字符串参数未绑定(bind)并返回 400

c# - IIS 下的多个端点

c# - 如何轮询 ASP.NET 中的目录?

c# - 如何从通知中心更新/删除通知?

c# - 下拉 future 10 年

c# - 为什么在 ASP .NET Authorize 标记中总是返回 401(未经授权)?

c# - 大型 WCF Web 服务请求因 (400) HTTP Bad Request 而失败

c# - Rijndael 或 AES 来匹配 Java 加密 - 使用盐和 key

asp.net - 使用 jquery 的 asp 文本框掩码

asp.net - IIS7 : disabling HttpModule in subapplication - sites, 应用程序和虚拟目录