0

認証ヘッダーを渡す必要がある jquery ajax 呼び出しがあります。私はいくつかの異なるアプローチを試みました。しかし、現在、私のajax呼び出しは次のようになっています...

        $.ajax({
        headers: {"Authorization": "Basic YgBhAHMAaQBjACAAbAAxAHQAdABsADMAcAAxAGcAbAAxAHQAdABsADMAcAAxAGcAOgBsADMAKwBtADMAMQBuAA=="},
        url: fetchurl,
        type: 'GET',
        dataType: 'json',
        async: false,
        contentType: 'application/json; charset=utf-8',
        success: function (data) {
            $.each(data, function (key, val) {
                $('<option/>').attr('value', val.ProductCd)
                    .html(val.ProductCd + " - " + val.Description)
                    .appendTo(productselect);
            });
            $.unblockUI();
        },
        error: function (error, textStatus, errorThrown) {
            alert(textStatus);
        }
    });

デコードの問題は、誰がエンコードを行ったかに関係しているのではないかと考えたので、C# クラスを介してそのトークンを生成し、それをスクリプト コードに貼り付けました。

また、jquery でのエンコードにプラグインを使用し、beforesend コールバックを使用してヘッダーを設定しようとしました。

ここで私はデコードしようとします:

          string authToken = actionContext.Request.Headers.Authorization.Parameter;
          string decodedToken = Encoding.UTF8.GetString(Convert.FromBase64String(authToken));



          string username = decodedToken.Substring(0, decodedToken.IndexOf(":"));
          string password = decodedToken.Substring(decodedToken.IndexOf(":") + 1);

私の結果はほとんどいつも同じです。

認証ヘッダーをデコードした後、ゴミが表示されます: "�w0u�\n�ZXNTLMSSP\0\0\0\0\0\0\0\0X\0\0\0\0\0\0\0X\0\ 0\0\0\0\0\0X\0\0\0\0\0\0\0X\0\0\0\0\0\0\0X\0\0\0\0\0\ 0\0X\0\0\0��\0\0\0I���ۛ��l�Y��#��\0\0\0��P-\"��\0\0\ 0\0"

4

1 に答える 1

1

わかった。ハッキングが必要でしたが、ajax呼び出しから基本認証を送信しているときに、WebAPIレイヤーがネゴシエート認証を受信して​​いることがようやくわかりました。そこで、IISにアクセスして、匿名を除いてWebサービスのすべての認証を無効にしました。そして出来上がり。

于 2013-01-24T14:36:09.963 に答える