2016-05-02 19 views
0

My MVC4アプリケーションは、Visual Studio 2010に付属のテンプレートに従って作成され、SimpleMembershipを使用しています。データベースにユーザーがいなくてもユーザーがログインしていて、アプリケーションが再起動されました

何分か前に、データベースのすべてのテーブルからすべてのデータを削除し、IISをiisresetコマンドで再起動しました。以前の人生から残された唯一のものは、Operaブラウザのクッキー(.ASPXAUTH__RequestVerificationToken_L3J1bmV0c29mdC9BdXRoVGVzdA2)です(私はクリーンアップ前にログアウトしませんでした)。

ホーム/インデックスを読み込もうとすると、Request.IsAuthenticated == trueUser.Identity.Nameが表示されます。これは最後のユーザーの名前です。

アプリケーションを再構築した後も同じことが起こります。

どのように??? !!!

答えて

0

これはちょっと変わっていますが、私は認めます。私自身の経験では、もしあなたがクッキーをバックアップしているユーザーがいなくなった場合、例外が発生しますが、私は暫定的にアイデンティティを実行していますが、ASP.NETの状況が同じであったかどうかは思い出せませんメンバーシップ。

しかし、好奇心だけでなく、ここに実際の問題がありますか? .ASPXAUTHのクッキーを削除し、あなたのビジネスについて進んでください。開発環境の外部ではこれが問題になることはまずありません。なぜなら、何らかの方法でユーザーを削除するべきではないからです。

+0

はい、問題があります。ログアウトするクライアント側のCookieを削除することは適切な解決策ではなく、サーバー側のセッションが破棄されないため、大きなセキュリティホールになります。それは悪い習慣であるので、私はいつもそうすることを人々に断った。これは実際のログアウトではなく、セッションのキーを忘れるだけです。 – Paul

+0

このシナリオでは、ユーザーのCookie以外は何も残っていません。データベース内のすべてのデータを削除しました。あなたのセッションがデータベースにあれば、それもなくなりました。それがin-procまたはSessionStateサーバーの場合、それは持続するかもしれませんが、それは重要ではありません。セッションはタイムアウトすると削除されます。問題なしでクッキーを削除することができます。関連するセッションが存在する場合は、自然に消えます。それにはアクセスする方法がないため、一時的に存在する危険はありません。 –

+0

ただし、心配している場合は、IISをリセットするか、SessionStateサーバーを再起動してください。 * No *セッションは、それに関連するすべてのデータを削除したため、この時点でもう有効です。 –

関連する問題