2

バニラフォーム認証を使用しています。同じユーザーとして複数のセッションを開いている場合、1 つのセッションでパスワードを変更しても、他のセッションは引き続き認証されます。

2 番目のセッションで資格情報の入力を再度求められると思います。

この機能を取得するには、ハッシュ化されたパスワードを Cookie に書き込み、リクエストごとに確認する必要がありますか?

私にはセキュリティホールのように思えます。

4

2 に答える 2

2

これは予期される動作です。FormsAuthentication は、ユーザー情報のみを保存します (サーバーが実際にその Cookie を生成したことを検証するための他のデータと共に)。Cookie 自体が有効な資格情報 (またはチケットまたはクレーム) です。これが心配な場合は、フォーム Cookie が有効な時間を短縮するか、パスワードの変更が発生したかどうかをサーバーに確認するためにさらに頻繁に電話をかけ、変更があった場合は FormsAuthentication.SignOut() アクションを実行して強制的にログインする。

FormsAuthentication に何をさせたいかではなく、それが何をするかです。

お役に立てれば。

于 2012-05-12T04:03:38.653 に答える
0

私のコメントで述べたように、それがあなたが望む行動であるならば、あなたはあなた自身でこの行動を強制する必要があります。これは、独自の「SecureBasePage」からすべての安全なページを取得するのと同じくらい簡単です。その安全なページで、データベースをポーリングして、ユーザーが許可されてからパスワードが変更されたかどうかを確認できます。

于 2012-05-12T12:55:20.997 に答える