ホームページ > ウェブフロントエンド > jsチュートリアル > Cookie消失問題(認証失敗) 認証(ユーザー認証情報)も失われる_javascriptスキル

Cookie消失問題(認証失敗) 認証(ユーザー認証情報)も失われる_javascriptスキル

WBOY
リリース: 2016-05-16 18:51:51
オリジナル
1434 人が閲覧しました

あなたはこれほど恥ずかしい思いをしたことがあるのではないでしょうか:

フォームやWindows統合認証など、Cookieを利用したページ認証を行っている場合、以下の操作を行うと認証に失敗し、認証(ユーザー認証情報)が失われ、ログインが必要となる場合があります。再度
システムが正常にログインした後:

最初のページ (PageA.htm): window.showModalDialog() の後、2 番目のページ (PageB.htm) がポップアップします

2 番目のページ (PageB.htm): window.open() の後、ポップアップ ウィンドウ (PageC.htm) がログイン ページにジャンプすることがあります

これは、異なるプロセスに異なるページが存在するため、ID 情報が同期されず、認証が失敗することが原因であるはずですが、MS コンサルタントの助けを借りて、最終的に次の方法を見つけました。
要約すると、showModalDialog() のときに、オブジェクトパラメータとして window を PageB.htm に渡します。Pag​​eB では、このパラメータを open() に使用することで問題は解決します。
詳細は次のとおりです。
-- ----------PageA.htm---------------
...
var obj = new Object();
obj。 myTestWindowA = window;//このウィンドウをオブジェクト パラメータに保存します
window.showModalDialog("PageB.htm",obj,"");
...
-------- - ------------------------

----------PageB.htm---------------
...
var obj = window.dialogArguments;//パラメータを取得前のページ
obj.myTestWindowA.open("PageC.htm");//前のページから渡されたパラメータを使用して次のページを開きます
...
------ - -------------------------
テスト後、アイデンティティの損失はなくなり、完了です。
注意深い友人なら、そのような操作により PageC.htm で問題が発生することに気づくでしょう。オープナーは PageB.htm ではなく PageA.htm であるため、window.opener は PageB.htm との通信に使用できず、open() Iオブジェクト パラメータを再び渡すことができなくなりました。パニックになってください。
幸いなことに、JavaScript ではオブジェクトは大きな木であり、その枝に何でも吊るすことができます。そのため、PageC.htm が PageB.htm と通信できるように、PageB.htm を次のように変更しました。 -----------PageB.htm--------------
...
var obj = window.dialogArguments;//前のパラメータを取得しますページの
var obj.myTestWindowA.myTestWindowB = new Object();
obj.myTestWindowA.myTestWindowB = window; //PageB のウィンドウを PageA のウィンドウ ブランチの下に移動します
obj.myTestWindowA. PageC.htm");//前のページから渡されたパラメータを使用して次のページを開きます
...
------ --- -------------
このようにして、getElementById など、PageC の window.opener.myTestWindowB を通じて PageB ページのオブジェクトと通信できます。 ("TextBox1").value="OK"

注:

1. これは単なる状況である可能性があります。最初に ModalDialog を開いてから表示すると、ID 情報が失われる可能性がありますが、問題なくウィンドウを次のページに移行できる限り、問題は発生しません。解決できる。

(

http://www.ourac.net/read.php?tid=45123&fpage=2を参照してください) 2.
http://support.microsoft.com/default.aspx?scid=kb;EN-US;196383を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート