1

こんにちは、私は Cisco Unified Communications Manager 用の AXL クライアント (SOAP) を作成しようとしています。そのためには、AXL サービスへの SSL 接続を確立する必要があります。残念ながら、私はそのすべてのsslについてあまり知りません。

しかし、私が望む動作する Java の例を見つけることができました。問題は、C#.NET でそれが必要なことです。だから私は、誰かが次の Java コードを C# バージョンで「翻訳」できることを望んでいます。ただし、特に認証と証明書に関するものは、まったく同じことを行う必要があります。

コードは次のとおりです。

    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-Class です。

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;
}

}

どんな助けでも大歓迎です。

ありがとう

編集: 申し訳ありませんが、言及する必要がありました: そうです、プロキシクラスを生成できますが、残念ながら正しく機能していません。cisco はそれで本当に悪い仕事をしました (本当に悪いドキュメントは言うまでもありません)。一部の応答を解析するときに、プロキシ クラスがいくつかの xml エラーをスローします。その場合は手動で行う必要があります...

後で証明書のセキュリティについて心配します

4

1 に答える 1

4

Webサービスを「適切な」方法で利用しようとしましたか?Visual StudioのC#プロジェクトにSOAP Webサービス参照を追加し、スタブなどを取得しますか?これは、C#から実行する最も簡単な方法です。参照を追加するときに、URLでhttpsプロトコルを指定するだけです。

于 2012-05-31T21:40:04.787 に答える