1

ここでの知識不足で申し訳ありませんが、私が働いている代理店は、ASP.net を使用して Windows サーバー上に構築されたサイトを継承しています。

ユーザーログインシステムに問題があります。基本的な話は、ユーザーがアカウントを要求したときに、管理者がそれを承認する必要があるというものです。管理者がユーザー アプリケーションを拒否した場合でも、ユーザーはパスワードを忘れたオプションを使用してログインできます。

私の最初の反応は、コードのロジックが悪いということでしたが、ASP 担当者にざっと見てもらったところ、問題を再現できませんでした。このため、何らかのキャッシングの問題である可能性があると彼らは示唆しています。もしそうなら、1時間ごとにキャッシュをリセットするようにサーバーを設定する方法はありますか? またはこれに関する他の推奨事項も大歓迎です。コード例がまったくなくて申し訳ありませんが、現在提供できるのはシナリオだけです。

乾杯。

4

2 に答える 2

3

再現できなくても問題ありません。ただし、キャッシュに問題がある可能性があることは認めます。しかし、あなたのアプリケーションについてもっと知らなくても、私が提案できるのは、クラスへの参照のためにソースコードをgrepすることだけです(System.Web.Caching.Cache通常、.PageHttpContext.Current

キャッシュが責任を負うという考えを取り除くと、パスワードを忘れた場合の機能のコーディングが悪いだけだと思います。パスワードを忘れた場合の機能は、ある種の「アカウント無効」フラグをリセットし、それがユーザーの侵入を許可していると思います。

于 2012-09-10T16:47:28.630 に答える
1

ASP.Netキャッシングクラスには、キャッシュされたアイテムのイテレーターと、アイテムを削除するメソッドがあります。「アイドル状態の」ワーカープロセスが強制終了されるため、IISで長時間実行されるプロセスをホストすることは困難です。そのため、タイマーを実行するだけでは不十分です。ただし、IISの自動起動機能を永続ストアと組み合わせて使用​​すると、1時間ごとに「nukethecache」メソッドを実行できます。

そうは言っても、これが問題の賢明な解決策であるかどうかはわかりません。ここでの計画は、実際の問題を切り分けるのに役立つことを願っています。

于 2012-09-10T16:50:28.473 に答える