【发布时间】:2012-11-15 00:21:03
【问题描述】:
我在通过 HTTPS 从 .NET Windows 应用程序使用 Java Web 服务时遇到问题。 Web 服务需要服务器身份验证,但是当我尝试调用任何方法时,我收到以下错误:
HTTP 请求未经客户端身份验证方案授权 '匿名的'。从服务器收到的身份验证标头是 '基本领域=登录'。
我将 Web 服务添加为 Visual Studio 中的服务引用。这是我的应用配置:
在<security> 部分我有这个:
<security mode="Transport">
transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
在<httpsTransport> 部分我有这个:
<httpsTransport manualAddressing="false" maxBufferPoolSize="524288"
maxReceivedMessageSize="65536" allowCookies="false" authenticationScheme="Anonymous"
bypassProxyOnLocal="false"
hostNameComparisonMode="StrongWildcard" keepAliveEnabled="true"
maxBufferSize="65536" proxyAuthenticationScheme="Anonymous"
realm="" transferMode="Buffered"
unsafeConnectionNtlmAuthentication="false"
useDefaultWebProxy="true" requireClientCertificate="false" />
我的代码如下所示:
ServiceReference1.servicePortTypeClient service = new ServiceReference1.servicePortTypeClient ("enpointbindingname");
service .ClientCredentials.UserName.UserName = "username";
service .ClientCredentials.UserName.Password = "password";
service.method();
【问题讨论】:
-
我通常需要反复试验 WCF 配置,您是否尝试过将 httpsTransport 节点中的 authenticationScheme 属性更改为“Basic”?
标签: c# .net web-services soap