none
ATLサーバのSSL通信についての質問 RRS feed

  • 質問

  • ATL Serverを使用してHTTPでサーバーにSOAP通信で通信をして既存処理をHTTPSに変更をしたいが、SendRequest()でエラーになりHTTPSでの通信が行えない。ATLの「atlspriv.inl」にある一部の定義義を変更することで、クライアントよりHTTPSでサーバに通信を行うようになりました。 HTTPS通信を行うにあたってatlspriv.inlの変更を行っても特に問題はないものでしょうか?また、別の方法でHTTPS通信を行うことが出来るものでしょうか?

    • 編集済み K.Nagata 2015年4月6日 2:28
    2015年4月6日 2:26

回答

  • 私自身はATL Serverを扱ったことはありませんが、ATL_URL_SCHEME_HTTP を ATL_URL_SCHEME_HTTPS に書き換える相当のことはわざわざヘッダーファイルを編集しなくとも

    struct ZEvtSyncSecureSocket : public ZEvtSyncSocket {
      bool SupportsScheme(ATL_URL_SCHEME scheme) throw() {
        return scheme == ATL_URL_SCHEME_HTTPS;
      }
    }
    
    typedef CAtlHttpClientT<ZEvtSyncSecureSocket> CAtlHttpsClient;

    くらいの記述でCAtlHttpsClientを実現できると思います。

    # 念のため、これで動作するかどうかのコメントではありません。

    2015年4月7日 1:05

すべての返信

  • 回答ではありませんが、ATL ServerはVisual Studio 2008以降では削除されており、ATL Server Library and Toolsとして公開されています。どのような変更を行ったのかは質問文に記載もなくわかりませんが、自由に編集すればいいと思います。
    2015年4月6日 7:33
  • どうもありがとうございます。

    具体的な内容としては、どうでしょうか。

    ===================atlspriv.inl内======================

    inline bool ZEvtSyncSocket::SupportsScheme(ATL_URL_SCHEME scheme) throw()
    {
    // default only supports HTTP
    return scheme == ATL_URL_SCHEME_HTTP ? true : false;
                                ================

                                 ↑ ここを「ATL_URL_SCHEME_HTTP」から

                         「ATL_URL_SCHEME_HTTPS」変更することでHTTPSでサーバに通信ができますか

    }


    #pragma warning(pop)

    #endif // __ATLSPRIV_INL__

    2015年4月7日 0:36
  • 私自身はATL Serverを扱ったことはありませんが、ATL_URL_SCHEME_HTTP を ATL_URL_SCHEME_HTTPS に書き換える相当のことはわざわざヘッダーファイルを編集しなくとも

    struct ZEvtSyncSecureSocket : public ZEvtSyncSocket {
      bool SupportsScheme(ATL_URL_SCHEME scheme) throw() {
        return scheme == ATL_URL_SCHEME_HTTPS;
      }
    }
    
    typedef CAtlHttpClientT<ZEvtSyncSecureSocket> CAtlHttpsClient;

    くらいの記述でCAtlHttpsClientを実現できると思います。

    # 念のため、これで動作するかどうかのコメントではありません。

    2015年4月7日 1:05
  • どうもありがとうございました。

    2015年4月7日 12:33