2012-05-04 9 views
3

シナリオ:防止メンバーasp.netのウェブサイトのページにログイン視聴から(サインアウト)、ユーザーのブラウザを押すことにより、バックボタン

  1. ユーザーメンバーにウェブサイト&アクセスしの上で「」ログインしますディレクトリ ページライブラリコンピュータから、
  2. ユーザー "a"がログアウトし、ブラウザが開いたままになります。
  3. ユーザー「b」は、同じコンピュータを使用することを開始し、ボタンがユーザー を見て、「A」のメンバーページ&情報をバック当たる
  4. ユーザー 『B』のページに何もするが、ちょうど(へ をリダイレクトされます表示することはできません。彼らは例えばのためのリフレッシュヒットした場合、ログインユーザー「b」をすべてのデータで表示するセキュリティ上の危険/バグできる をされているログの

現在のコードをオフに:。。

Session.Contents.RemoveAll(); 
FormsAuthentication.SignOut(); 
Session.Abandon(); 
Response.Redirect("~/LogOff.aspx", false); 

どのようにして、ブラウザで「表示のみ」のページを表示しても、それらが表示されなくなったことを認証できなくなるのを防ぐことができます。

私はサイトの

EGブラウザのキャッシュをオフにする方法があることを理解する:Disabling browser caching for all browsers from ASP.NET

が、私は部分的なポストバックの更新のパネルを持っているように、これは、コストがかかること/干渉することになるが?

私が説明した問題の他の選択肢はありますか?

ありがとうございました

答えて

1

私はこれのためのより初期の方法を知っています。現在のユーザーがアクティブ化されたユーザーでない場合は、すべてのページのページ読み込みでアクティブユーザーをチェックする必要があります。ユーザーをlogof.aspxにリダイレクトする必要があります。 これは最善の方法ではありませんでしたが、それは以前から使用されていました。それがあなたを助けることを願っています。

+0

ページの読み込みはありませんが、もしあれば明らかに問題はありません。私たちはすでに、ASPのメンバーシップ&privalageシステムとwebconfigフォルダ設定を使って、すべてのページで認証を実装しています。 – RY4N

0

okセッション[""]!= nullは、nullかどうかを確認するために重要なことです。 しかし、page_Loadイベントがないので、これは マスターページ/コンテンツ所有者ページのキャッシュを無効にするための解決策です。ページはキャッシュに保存されません。また、戻るボタンを押すと、ログイン画面に移動します。それは、ヘッド部の下

<meta http-equiv="Pragma" content="no-cache" /> 
    <meta http-equiv="Expires" content="-1" /> 
    <meta http-equiv="CACHE-CONTROL" content="NO-CACHE" /> 

をこれらのタグをコピーし、ファイルの背後にあるコードでこれをコピーしてログイン旅館

をイマイチ。

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1)); 
    Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache); 
    Response.Cache.SetNoStore(); 

あなたはいいですね。

関連する問題