2011-02-04 7 views
1

私はデバッグブラウザとしてchromeを使用しています。MVC:ログインしましたが、セッション変数はありませんか?

私はMVC(Razor)ウェブサイトを起動するときに停止ボタンをクリックすると、ウェブサイトはクロームで動作し続けますが、VS ...で完全に変更できます。

しかし時には(私は何が変更されているか分からないため)、私はページをリフレッシュすると、私はまだログインしていますが、私はすべてセッションバーを失います。

セッションバーをクリアしてユーザーをログインページに戻すことができますか? 。(私は<forms loginUrl="~/Account/LogOn" timeout="2880" /> ..私は持っている

kinde Global.asaxのpage_request方法を必要とする...しかし、イムはログアウトしていない - 。のみセッションVARSがクリアされ

答えて

2

ログイン状態がクライアントのクッキーに永続化されているためですセッション状態がにサーバーに保存されます。メモリ(または何でも)。あなたのアプリケーションが再起動すると、セッションはcユーザはまだマシン上に有効なフォーム認証トークン(ここではフォーム認証を前提としています)を持っています。フォーム認証は、デフォルトではどのような方法でもセッションを使用しません。

したがって、リクエストの開始時に、nullのときにデータベースからユーザーセッションをリロードすることができます(これは可能な場合、これが望ましいアプローチです)。または、ユーザーをログイン画面にリダイレクトし、あなたのセッションを忘れてしまって申し訳ありません "(これは良いことではありません)

0

あなたが使用している場合は、組み込みの認証機能、あなただけの[承認]属性を追加することができ、ここでカスタム認証を使用して上のいくつかの情報があります:。

ASP.NET MVC Authorization

0

Lee Gunnは説明しました。 1つの解決策は、Authorizeに似たカスタムフィルタ属性を作成して、セッションが期待する値を持っていることを確認し、適切なコントローラ/アクションを装飾することです。

関連する問題