gpt4 book ai didi

c# - 从 C# 代码调用 HTTPS JBoss 服务会引发身份验证错误

转载 作者:行者123 更新时间:2023-11-30 21:15:07 27 4
gpt4 key购买 nike

我正在尝试从 C# 程序调用 JBoss 服务,但遇到了一个令人讨厌的模糊错误。

            JbossService proxy = new JbossService();
proxy.Credentials = new NetworkCredential("ME", "thepwd");
proxy.Url = //https url snipped
proxy.CookieContainer = new CookieContainer();
proxy.PreAuthenticate = true;

Console.WriteLine("Calling service...");
queryResponse qr = proxy.query();
Console.WriteLine("Done.");

抛出的异常和内部异常如下:

异常:底层连接已关闭:发送时发生意外错误。

内部异常:身份验证失败,因为远程方已关闭传输流。

我不太确定这意味着什么,也许 JBoss 对我的喜爱程度甚至低于我对它的喜爱程度。我是从本地机器打电话的,所以我认为这不是网络问题。有人以前见过这个吗?

最佳答案

这通常发生在您的客户端无法通过 https 验证与服务器的信任时(通常是因为服务器证书是自签名的,或者它是由未安装在您的客户端计算机上的根授权机构签名的。

轻松修复(尽管存在安全后果)....在初始化代码的某处添加以下内容:

System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return true;};

基本上,这取代了应用程序范围内的服务器证书验证处理,并使您的应用程序接受任何证书。如果你想获得更细粒度,你可以检查证书并在方法中加入一些逻辑。

这适用于任何基于 System.Net 的东西,因此它应该适用于 Web 服务和任何基于 WebRequest 的东西。

关于c# - 从 C# 代码调用 HTTPS JBoss 服务会引发身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5899729/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com