none
ASP.Net(C#)にて、ajax+SSL+SingleSignOn 環境で動作しない RRS feed

  • 質問

  • ASP.Net(C#)にて、ajax+SSL+SingleSignOn 環境で動作しないことが判明

    以下の状況で、調査中なんですが、調査ポイントや解決策などご存知の方がいらっしゃったらご回答いただけますか?

    IIS6.0 SSL設定済み
    windowsServer2003
    SSO:Tivoli

    通常の、SSLもSSOも利用していない環境では、ajaxの動作を確認済み。
    SSOだけの環境でのajaxの動作も確認済み。
    そこにSSLが加わったとき、ajax処理にて、”SyntaxError”が発生する。もしくは、戻り値が"null"のときもある。

    web.configには、以下の文言は導入済み
    -------------------------------------------------------
      <system.web>
        <httpHandlers>
       <!-- ajax利用のために -->
          <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
        </httpHandlers>

    ・・・

       <!-- SSL利用のために -->
        <authentication mode="Forms">
          <forms name="OPAP" loginUrl="Login.aspx" protection="All" path="/" timeout="60"/>
        </authentication>

    ・・・

      </system.web>
    -------------------------------------------------------

    2010年2月10日 1:13

回答

  • ajaxライブラリから自動的に出力される処理に、

    XXXX = {
    function(){  ・・・・ path = this.domain + URL; }  ・・・・ ①
    URL:/Web-path/XXXXXX
    }

    という記載を見つけました。
    ①の部分で、this.domainの部分にて、junction名の部分が含まれていないのが今回の問題でした。

    なので、自前で、URL:の中身を、変更すべく、各aspxの最後の箇所に、
    <script language="javascript>
      XXXX.URL = "/junction" + XXXX.URL;
    </script>
    という記述をいれて、凌ぎました。。。

    今回の調査で、ajaxライブラリが、ver.5.2で合ったことがわかりました。最近は、9.2というのがリリースされているんですね。。
    • 回答としてマーク だんごろ 2010年2月12日 5:32
    2010年2月12日 5:31

すべての返信

  • すみません、投稿内容に誤りがありました。自分で状況を追加です。

    SSLでの問題ではないようです。

    SSO:Tivoliのときに、ジャンクション名がURLに入りますが、
    Ajaxのライブラリでは、URLの認識が途中までしかされておらず、
    HTMLの<A>タグで相対パスでの展開されたURLと
    AjaxでのURLでは異なることがわかりました。

    ex)
    説明用URL:https://web.XXXXXX.co.jp/janction/web-path/PAGE.aspx?xxxxxxxx

    <A>タグのhref=/web-path/PAGE.aspx?xxxxxであっても、
        相対パスであるため、実質にhttps://web.XXXXXX.co.jp/janction/web-path/PAGE.aspx?xxxxxxxx
        になるとおもいます。

    しかし、ajaxライブラリのときに、
    自動で展開されるURLは、URL:/web-path/PAGE.aspx?xxxxxと展開されていて
    実質のURLは、https://web.XXXXXX.co.jp/web-path/PAGE.aspx?xxxxx
    となっていることがわかりました。
    ジャンクション名部分がかけていました。

    対策として、ajaxのPGMでは、URLが/web-pathであった場合、/janction/web-pathに自動的に
    書き換えようかと考えています。

    書き換える方法をご存知であれば、教えていただけませんか?

    説明が難しくなってしまいすみません。
        

    2010年2月10日 12:58
  • ajaxライブラリから自動的に出力される処理に、

    XXXX = {
    function(){  ・・・・ path = this.domain + URL; }  ・・・・ ①
    URL:/Web-path/XXXXXX
    }

    という記載を見つけました。
    ①の部分で、this.domainの部分にて、junction名の部分が含まれていないのが今回の問題でした。

    なので、自前で、URL:の中身を、変更すべく、各aspxの最後の箇所に、
    <script language="javascript>
      XXXX.URL = "/junction" + XXXX.URL;
    </script>
    という記述をいれて、凌ぎました。。。

    今回の調査で、ajaxライブラリが、ver.5.2で合ったことがわかりました。最近は、9.2というのがリリースされているんですね。。
    • 回答としてマーク だんごろ 2010年2月12日 5:32
    2010年2月12日 5:31