gpt4 book ai didi

C# 相当于 Java SSL 套接字连接

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:37 26 4
gpt4 key购买 nike

大家好,我正在尝试为 Cisco Unified Communications Manager 编写一个 AXL 客户端 (SOAP)。为此,我需要建立到 AXL 服务的 ssl 连接。不幸的是,我对所有 ssl 的东西知之甚少。

但是我能够找到一个有效的 Java 示例,它确实是我想要的。问题是,我需要在 C#.NET 中使用它。所以我希望有人可以在 C# 版本中“翻译”以下 Java 代码。但它必须做完全相同的事情,尤其是身份验证和证书内容。

代码如下:

    String sAXLSOAPRequest = "...";
byte[] bArray = null; // buffer for reading response from
Socket socket = null; // socket to AXL server
OutputStream out = null; // output stream to server
InputStream in = null; // input stream from server

X509TrustManager xtm = new MyTrustManager();
TrustManager[] mytm = { xtm };
SSLContext ctx = SSLContext.getInstance("SSL");
ctx.init(null, mytm, null);
SSLSocketFactory sslFact = (SSLSocketFactory) ctx.getSocketFactory();

socket = (SSLSocket) sslFact.createSocket("192.168.1.100", Integer.parseInt("8443"));
in = socket.getInputStream();
// send the request to the server
// read the response from the server
StringBuffer sb = new StringBuffer(2048);
bArray = new byte[2048];
int ch = 0;
int sum = 0;
out = socket.getOutputStream();
out.write(sAXLSOAPRequest.getBytes());

while ((ch = in.read(bArray)) != -1) {
sum += ch;
sb.append(new String(bArray, 0, ch));
}
socket.close();
// output the response to the standard output
System.out.println(sb.toString());

这是 MyTrustManager 类:

public class MyTrustManager implements X509TrustManager {
MyTrustManager() {
// create/load keystore
}

public void checkClientTrusted(X509Certificate chain[], String authType)
throws CertificateException {
}

public void checkServerTrusted(X509Certificate chain[], String authType)
throws CertificateException {
}

public X509Certificate[] getAcceptedIssuers() {
return null;
}

如有任何帮助,我们将不胜感激。

谢谢

编辑:抱歉我应该提到:你是对的我可以生成一个代理类,但遗憾的是它不能正常工作。思科在这方面做得非常糟糕(更不用说非常糟糕的文档了)。代理类在解析某些响应时抛出一些 xml 错误。所以在这种情况下我必须手动完成...

稍后我会担心证书的安全性

最佳答案

您是否尝试过以“正确”的方式使用网络服务?在 Visual Studio 中向 C# 项目添加 SOAP Web 服务引用,获取 stub 等?这是从 C# 执行此操作的最简单方法。添加引用时,您可以在 URL 中指定 https 协议(protocol)。

关于C# 相当于 Java SSL 套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10841625/

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