- PR -

ASP.NET+C#のページ遷移で戻るボタンとブックマークの判断方法

1
投稿者投稿内容
インスパ
大ベテラン
会議室デビュー日: 2002/08/30
投稿数: 125
投稿日時: 2008-12-01 20:50
ASP.NET+C#で開発をしているのですが、ブラウザの戻るボタンとブックマークが押されたときに
サーバー側のPage_Loadでどちらから来たのか判断したいのですが、判断する方法はありますでしょうか?

まず、クライアント側でキャッシュを持っていると、ページが切り替わってもキャッシュを見ているのでPage_Loadイベントが
発生しないのでキャッシュを持たないようにクライアントのaspxに<%@ OutputCache Location="None"%>を設定しています
これで、戻るボタン、ブックマークとも遷移先のページでPage_Loadイベントが発生しました。
次に、戻るボタンで遷移したのか、ブックマークで遷移したのかの判断を行いたいのですが
どのような判断方法がありますでしょうか?

※業務で戻るボタンは許すがブックマークは許さないという制限を考えているようなので
 まず、判断ができるのかを調べています。

よろしくお願いします
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-12-01 20:54
セッション
インスパ
大ベテラン
会議室デビュー日: 2002/08/30
投稿数: 125
投稿日時: 2008-12-01 21:13
Jittaさん
セッションでログインしているかどうかの管理はしているのですが
戻るとブックマークで戻ってきた場合にPage_Loadイベントでは
両者ともセッションに値は入っていたのでどのように判断できるのかがわかりません。

申し訳ございませんが、もう少し情報をいただければ自分なりに調べてみます。
よろしくお願いします。
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2008-12-02 09:13
ご参考までに。

ASP.NET 1.1 「リロード」で、データを2重登録させない
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-12-02 19:34
セッション情報があるブラウザで、セッションの有効期間中にブックマークを利用すれば、セッション情報にアクセスできます。これを防止する方法は、ないと思います。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-12-03 00:35
引用:

※業務で戻るボタンは許すがブックマークは許さないという制限を考えているようなので
 まず、判断ができるのかを調べています。


ブックマークできないということは、デスクトップにショートカットですか?

ブックマークからアクセスしたときと、
ショートカット経由でアクセスしたときの、
送信されたパケットをモニタしてみると分かると思いますけど、
違いはないと思います。

ブックマークされようが、二重送信されようが、戻るボタンを押されようが、
何されても問題のないアプリにするべきで、
ブラウザの挙動なんかに頼るのは筋違いなんですが、
今の状態でとりあえず対応するとなると、
リファラーの有無で判断するというあたりですかね。

ブラウザによってはリファラーを送らない設定が簡単にできるので、
当然そういう設定ならばアクセスできなくなってしまいます。

所詮WEBアプリなんてHTTPでの通信をするだけのもので、
OSやブラウザと統合されたアプリではないのです。

1

スキルアップ/キャリアアップ(JOB@IT)