1

シナリオ:

私が手元にあるタスクは、異なる組織/Webサイト間でシングルサインオンソリューションを有効にすることです。私はある組織のWebサイトで認証されたユーザーとして開始し、特定の情報をXmlドキュメントに変換し、トリプルDESでドキュメントを暗号化し、それを投稿変数として2番目の組織のログインページに送信します。

質問:

xmlデータをパッケージ化したら、プログラムで2番目のWebサイトに投稿し、ユーザーのブラウザーを2番目のWebサイトにもリダイレクトするにはどうすればよいですか。

これは、次のようなフォームを持つのと同じように動作する必要があります。

action = "http://www.www.com/posthere" method = "post"

...そして次のような非表示のテキストフィールドがあります:

input type = "hidden" value="暗号化されたxml"

これは、asp.net2.0Webフォームで記述されています。

-

編集:ニックは、私が上で説明したhtmlフォームが機能しない理由を尋ねます。回答:どちらのサイトも管理できません。私はこれらすべてを実現する「仲買人」を構築しています。サイト1は、作成中のページにユーザーを転送しています。XMLを作成してから、サイト2に転送する必要があります。サイト1は、ユーザーに自分のサイトについて知られたくないので、リダイレクトは透過的である必要があります。

私が上で説明したプロセスは、両方の当事者(サイトAとサイトB)が義務付けているものです。

4

3 に答える 3

3

非表示の入力を含む from を含むドキュメントを送り返し、フォームを他のサイトにすぐに送信する onload ハンドラーを含めます。jquery の document.ready() を使用すると、ポストが発生する前に DOM がロードされているかどうかの問題が解決されますが、jquery を使用せずにこれを行う方法は他にもあります。ユーザーがまもなくリダイレ​​クトされるという趣旨の小さなメッセージを画面に表示し、投稿も行うリンクを提供することをお勧めします。

...headers left out...

<script type='text/javascript'>

$(document).ready( function() {
   $('form:first').submit();
 });
</script>

<body>
   <form action='othersiteurl' method='POST'>
       <input type='hidden' value='your-encrypted-xml" />
   </form>
</body>
于 2008-10-24T18:55:48.483 に答える
0

あなたはこれについてもプロセス志向で考えています。あなたが提案したすべてのバグと可動部分を試して解決するには、日曜日に1か月かかります.

すでに別のサーバーに投稿しているので、何もする必要はありません。あなたが持っているフォームはすでに完璧であり、他のサーバーがリクエストをインターセプトすると、ユーザーを許可してサイトを続行するか、ヘッダーのリファラー (sic) にリダイレクトするかが決定されます。リファラーにリダイレクトする際に、何が問題だったかを示すメッセージ (?error=no_auth など) を追加したい場合があります。

于 2008-10-24T14:40:05.613 に答える
0

しばらく前に別の質問でこれについて書きました。お役に立てれば:

アプリ ドメイン間で認証されたセッションを渡す方法

于 2008-10-28T14:32:04.340 に答える