WCF 客户端调用 Java Web 服务

发布于 2024-08-14 04:10:02 字数 502 浏览 2 评论 0原文

我在登录使用 HTML 托管的 Web 服务时遇到一个小问题 基本身份验证。我已经尝试过以下方法,但它不起作用。这有什么限制或陷阱吗?

           var client = new WSClient();
           client.ClientCredentials.UserName.UserName = "xxx";
           client.ClientCredentials.UserName.Password = "yyy";
           client.doIt();

客户端显示异常,并显示 http 401 未经授权的代码,但它不会尝试登录。 客户端使用 WCF,由 Visual Studio 2008 生成,服务器运行 Java Apache CXF。 使用网络浏览器可以很好地完成基本挑战......

I have a small issue logging in with a webservice being hosted using HTML with
basic authentication. I have tried the following but it does not work. Are there any restrictions or gotchas on this?

           var client = new WSClient();
           client.ClientCredentials.UserName.UserName = "xxx";
           client.ClientCredentials.UserName.Password = "yyy";
           client.doIt();

The client shows an exception with the http 401 unauthorized code, but it does not attempt to login.
The client is using WCF and is generated by Visual Studio 2008, server is running Java Apache CXF.
The basic challenge works fine using a webbrowser...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我爱人 2024-08-21 04:10:02

经过一番调查后,这会登录:

var binding = new BasicHttpBinding();
binding.Security.Mode=BasicHttpSecurityMode.TransportCredentialOnly;
binding.Security.Transport.ClientCredentialType=HttpClientCredentialType.Basic;
var client = new WSClient(binding, new EndpointAddress("http://localhost/myws"));
client.ClientCredentials.UserName.UserName = "xxx";
client.ClientCredentials.UserName.Password = "yyy";
client.doIt();

After some investigation this does an login:

var binding = new BasicHttpBinding();
binding.Security.Mode=BasicHttpSecurityMode.TransportCredentialOnly;
binding.Security.Transport.ClientCredentialType=HttpClientCredentialType.Basic;
var client = new WSClient(binding, new EndpointAddress("http://localhost/myws"));
client.ClientCredentials.UserName.UserName = "xxx";
client.ClientCredentials.UserName.Password = "yyy";
client.doIt();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文