8

すでに同様の質問があり申し訳ありませんが、もっと広く質問したいと思います。

リソースを要求すると 401 ステータス コードが返され、ブラウザに醜い認証ダイアログが表示されるかどうかを Web アプリケーションのクライアント側で判断する方法はありますか?

または、ブラウザーに醜いダイアログを表示させるのではなく、401 ステータス コードの場合に目に見えずに失敗する mp3 オーディオ リソースをフラッシュにロードする方法はありますか?

URLRequest オブジェクトの「authenticate」プロパティを設定しても、このプロパティが Flash ランタイムにない場合、Adobe Air ランタイムは認証を抑制します。クライアントで機能するソリューションはすべて実行できます。問題のリソースが異なるドメインにあるため、XMLHttpRequest は機能しない可能性があります。

アプリケーションには試すべき多数のオーディオ リソースのリストがあり、他にも多くのオーディオ リソースが利用可能である場合にユーザーが 1 つのリソースを認証しようとするのは意味がないため、見えないように失敗することが重要です。問題の mp3 は私の管理外のさまざまなサーバーから送信されるため、ソリューションがクライアント上で機能することが重要です。

4

4 に答える 4

1

私はTwitter APIで同じ問題を抱えています.保護されたユーザーは、クライアントを認証する必要があります.

私が思いついた唯一の解決策は、サーバー側でページをロードし、URL のリストとその http 応答コードを返すことでした。

于 2009-07-19T03:11:18.860 に答える
0

「リソースをリクエストすると 401 ステータス コードが返され、ブラウザに醜い認証ダイアログが表示されるかどうかを Web アプリケーションのクライアント側で判断する方法はありますか?」

いいえ、一般的ではありません。401 応答は、サーバーが認証が必要であることを示す唯一の標準的な方法です。

于 2009-07-19T03:13:14.427 に答える
0

Ajax 呼び出しに対する認証が必要になる可能性があるリソースへのアクセスをラップするだけです。応答コードをキャッチし、javascript を使用して、必要なことを行うことができます (つまり、そのサウンドを再生します)。ただし、応答コードに問題がない場合は、javascript を使用してユーザーをリソースに転送します。

ほとんどの場合、このアプローチはサーバーにわずかに多くの負荷を生成します (状況によっては、同じリソースを数回ロードする必要があるかもしれません) が、うまくいくはずです。XMLHttpRequest の使用方法に関する優れたチュートリアルには、必要なものがすべて含まれている必要があります。たとえば、http://www.xul.fr/en-xml-ajax.htmlを見てください。

于 2009-07-19T12:32:27.433 に答える
0

ファイルを取得するために URLRequest を使用している場合は、洗練されたエラー処理だけでなく、Flash と AIR ランタイムの根本的な違いに遭遇しています。

URLRequest オブジェクトを使用してファイルを取得する場合、これらの種類のリクエストを許可するポリシー ファイルを設定していないすべてのサーバーへのすべてのリクエストで、Flash からセキュリティ エラーが発生します。AIR は基本的にクライアントであるため、これらの要求を許可します。これは、アプリケーションのインストールと Web ページへのアクセスの違いであるため、理にかなっています。

回答がないことを言いたくないのですが、サーバー側の呼び出しを行うことができず、さまざまな「未知の」サーバーにアクセスしている場合は、苦労することになります。

しかし、私は誤解しているかもしれません.ファイルにリンクして、ユーザーが悪いリンクを取得するのを防ごうとしているだけですか、それとも実際にファイルをロードしようとしていますか?

于 2009-07-19T20:34:29.510 に答える