0

セッションベースのFacebookアプリケーションがあります。私は次のように悪い動作をしています: ユーザーがアプリを使用している場合、Facebook からログアウトし、他のユーザーが Facebook にログインしてアプリにログインすると、ログアウトしたばかりのユーザー データが表示されます。

基本的に、訪問者が最初のページにアクセスするたびにセッションをクリアしたいと思います。

ユーザーがセッションを持っているかどうかを確認するベースコントローラーで BaseController を拡張する HomeController があります。

ユーザーが古いユーザーセッションにアクセスできないようにするには、Session.clear() をどこに配置すればよいですか?

の上

HomeController{
   [authorize for facebook]
   indexAction{
      redirect to home action
   }

}

私の懸念は、 indexaction が呼び出される前に、そのベースコントローラーが呼び出され、無限ループが発生することです。

注:ユーザーIDとCookieの有効期限を保存するUserCookieを使用しています。

何か案は?

4

1 に答える 1

2

Facebook ユーザー ID がセッション状態のデータと一致するかどうかを確認したいようです。最も簡単な方法はSession["FBID"]=facebookId、現在の facebookId が `Session["FBID"] と一致する場合はすべてのリクエストをチェックし、そうでない場合はセッションをクリアする (現在の場所に関係なく) ようなものを配置することです。

于 2012-05-22T22:52:24.090 に答える