.net服务认证问题

问题描述 投票:0回答:1

我正在尝试使用 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
部分,但谷歌建议的任何内容都不起作用。 有人对为什么这不起作用有任何建议吗? 终点已被验证。 谢谢!

c# web-services netweaver
1个回答
0
投票

从错误消息来看,它期待 clientCredentialType="Basic" 但您传递了 clientCredentialType="None"

© www.soinside.com 2019 - 2024. All rights reserved.