2011-12-11 13 views
0

こんにちは、ASP.NET MVCの取り扱いは

私のASP.NET MVCのページでログインの方法は次のようになります時間と私は、次の注意があります(上記の方法で)

  1. スタートのウェブサイト
  2. ログインを
  3. soultion
  4. 再起動のウェブサイト
今User.Identity.Nameはまだ設定されますが、

HttpContext.Session[Biss.Extensions.SessionKey.userContext.ToString()] 

がnullを再構築?再構築/再起動時にWebサイトが再起動しても、User.Identity.Nameはどのように設定できますか?どうすればこの問題を処理できますか?

BestRegards

+0

ブラウザを再起動しますか?それとも、何らかの古いクッキーをアプリに渡している可能性はありますか? –

+0

@ MerlynMorgan-Graham>いいえブラウザを再起動しないで、メンバーシップでこれに何かクッキーを使用することを奨励しますか? – Banshee

+0

そのような問題をデバッグしていないので、私はその疑問に対する答えを喜んで気付いていません:)しかし、それは何かチェックすることになります。 –

答えて

2

AppDomainを再起動しているため、セッションはメモリに保存されると削除されます。プロダクションサーバーでまったく同じことが起こるかもしれないと考えてください。特定の状況下では、IISはアプリケーションプールを単に再起動することができます。たとえば、一部の非アクティブまたはメモリ/ CPUのしきい値に達した後です。セッションデータが失われないように、アウトオブプロセスのセッション記憶域を使用してメモリに残らないようにすることができます。さまざまな可能性については、次の記事をご覧ください。http://msdn.microsoft.com/en-us/library/ms972429.aspx

0

あなたがウェブサイトを再起動するとして、あなたはあなたのセッションを洗い流します。セッションの状態は単に消えてしまいます。

ユーザーログインのような簡単なシナリオでは、Sessionを使用しないようにすることをおすすめします。私の一般的な答えはほとんどどこでも - あなたはそれについて非常に深刻な理由がある場合、セッションを使用します。

データベースのユーザーに関する情報を保持し、実際に必要な情報よりも読み取ることができます。

+0

しかし、この情報は別の方法で何度も使用することができますが、私はmothodsの間でユーザー情報を渡すことができますか?これは本当に良いソリューションですか? – Banshee

+0

あなたはuserInformationを持つシングルトンをより良い方法にすることができますか? – Banshee

+0

セッションよりも優れています。複数の場所が必要な場合は、その情報を読み込んで何かを行うことができるMVCフィルタを作成することを検討してください。例えば、ユーザの役割などに応じてアクションへのアクセスを許可/禁止する。 –

関連する問題