0

基本的に私が探しているのはこのようなものです。

.ASPXファイルを呼び出す従来のaspサイトにリンクがあり、Sessions変数から一連のユーザー資格情報を設定してから、サードパーティベンダーがホストするサイトにリダイレクトします。ダーティですが、何もできません。今それ。

したがって、プロセスは次のとおりです。1. .ASPXページへのリンクを含むクラシックASPページをロードします2.リンクをクリックし、.aspxページに送信します3. .ASPXは必要なデータを設定し、.Send()をサードパーティベンダーアプリケーションに送信します

問題は、ユーザーがサードパーティのサイトから「ログアウト」せずに新しいユーザー名で再度ログインした場合、最初のユーザー名のクレデンシャルが設定されたままになることです。ユーザーがクリックしてサードパーティベンダーアプリに移動する前に、.aspページで、バックグラウンドでベンダーアプリのログアウトページを呼び出します。iFrameの使用を考えていましたが、iFrameはログアウトページを表示するだけで、関連付けられているコードは実際には実行されません。

どんな助けでも大歓迎です、ニックG

4

3 に答える 3

0

私は古典的なaspでより良いアプローチを考え出し、URLをとして含めただけで、正しく機能しているようです。

于 2013-03-21T16:31:27.137 に答える
0

これらの線に沿って思いついたソリューションは、このサードパーティ ベンダーがサイトに大きなセキュリティ ホールがあることに気づき、それを閉鎖することを決定するまでの間だけ機能します。

たとえば、ページに非表示の iframe を挿入することによって、別のシステムから誰かをログアウトできないようにする必要があります。これは CSRF 脆弱性の一種であり、他のサイトのセキュリティ対策が不十分であることを示しています。

私は確かに別のアプローチを検討します。

于 2013-03-20T21:03:22.033 に答える
0

サーバー側のコードが正しい場合は、Iframe メソッドが機能するはずです。ただし、心に留めておくべきことが2つあります。

まず、セッション変数はドメインに固有であるため、ページが複数のドメインで利用可能であり、iframe の src 属性が、ユーザーが最初にサイトにアクセスした属性と異なる場合、セッション データは認識されません。これは、一方の URL に「www」が含まれていて、もう一方の URL に含まれていない場合にも適用される可能性があります - 私はこれをテストしたことがありません

次に、クラシック ASP ファイルと ASP.net ファイルはセッション変数を共有できないため、ページ セットごとに個別の変数セットが必要です。2 つのセットを同期する必要がある場合、一般的なハックは 0px x 0px の iframe を使用することです。

<iframe height="0" width="0" src="dotnetpage.aspx?userid=<%=Session("userid")&loggedin=<%=Session("loggedin")" />

明らかに dotnetpage.aspx には、クエリ文字列の値をセッション変数として設定するコードが含まれており、.net ページからクエリ文字列を受け取るクラシック ページを作成できます。

于 2013-03-20T20:23:31.053 に答える