ライブサイトのweb.configを編集したときにセッションが終了する問題がありました。彼らはまだセッション変数でログインしているユーザーを追跡していました(危険です)。しかし、ここで人々を助けることができる解決策(テストされていない解決策)が思いつきました。
FormsAuthenticationでは、アクティブでログインしている人を無期限に維持することができます。しかし、例えば、 20分でログアウトされ、うれしいです。タイムアウト値を0に設定するとブラウザが閉じることができない(それを待っている)ときにログアウトするようにするには、常にログインしてから再度ログアウトする必要があります。
解決策:FormsAuthenticationを使用してログインしたときに、ブラウザを閉じるときに削除される標準セッション変数クッキーを設定することもできます。このクッキーには、アカウント以外の関連性のない情報が含まれています。ちょうど単純な "loggedIn:はい"です。
これで、すべてのコードがmasterpage/materlayout上にある必要があります。ページサイクル(またはカスタム属性)のページサイクルまたはコンストラクタで、CookieとユーザーIDの両方をチェックする上位レベルの呼び出しです。
if(!HasLoginCookie() || !System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
{
// redirect user to log in page.
}
基本的に、ブラウザを閉じたときにCookieが削除された場合は、ユーザーをログインページにリダイレクトします。
うまくいけば、うまくいけば(私がテストしなかったように)うまくいきます。
FormsAuthenticationを使用すると、ブラウザセッション間でログインできます。そのため、Webで設定できるタイムアウト値が存在します。どの人がアクティブになってほしいと言いたいのかを設定します。 –