我正在尝试使用 SAP Web 服务作为 C# 窗口服务中的服务引用。 我不断收到此错误:
System.ServiceModel.Security.MessageSecurityException:HTTP 请求未经客户端身份验证方案“匿名”的授权。从服务器收到的身份验证标头是“Basic Realm=”SAP NetWeaver Application Server [SEQ/400]””。 ---> System.Net.WebException:远程服务器返回错误:(401) 未经授权。
在 System.Net.HttpWebRequest.GetResponse()
我在代码中传递用户名和密码:
ws.ClientCredentials.UserName.UserName = psUserName;
ws.ClientCredentials.UserName.Password = psPassword;
我的
serviceModel
app.config
部分看起来像这样:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="basicHttpBinding_MyWS">
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None" realm="SAP NetWeaver Application Server [SEQ/400]"/>
<message clientCredentialType="Certificate" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://myaddress/sap/somefunc" binding="basicHttpBinding" bindingConfiguration="basicHttpBinding_myWS" contract="myWS.ServiceName" name="basicHttpBinding_myWS" />
</client>
</system.serviceModel>
我尝试摆弄
system.serviceModel
部分,但谷歌建议的任何内容都不起作用。 有人对为什么这不起作用有任何建议吗? 终点已被验证。 谢谢!
从错误消息来看,它期待 clientCredentialType="Basic" 但您传递了 clientCredentialType="None"