UI <->WCF<->ビジネスレイヤー<->データレイヤー<->データベースという古典的なアーキテクチャのアプリケーションがあります。WCFサービスには、ユーザー名/パスワード認証を使用します。これらのユーザー名は、アプリケーションデータベースに保存されているパスワードです。パスワードは定期的に期限切れになるように構成されています(ビジネス要件)。
パスワードの有効期限に問題があります。WCFサービスでユーザーパスワードの変更を担当する操作を行いましたが、認証に失敗したため、パスワードの有効期限が切れるとアクセスできません。
どのように処理すればよいですか?パスワードを変更するための特別な認証を備えた特別なエンドポイントを作成する必要がありますか(パスワードの有効期限が切れていても、パスワードが正しい場合はアクセスを許可するなど)?このような「小さな」問題に対する重い解決策のように思えます。
編集:多分私はもう少しコンテキストを追加する必要があります。検証は、UserNamePasswordValidatorを実装するクラスで行われます。検証方法では、ユーザーがロックされているかどうか、パスワードが正しくないかどうか、ログイン試行回数の最大数に達しているかどうか(そうであれば、ユーザーもロックします)、パスワードの有効期限が切れているかどうかを確認します。これらのいずれかが当てはまる場合、認証は失敗します。多分それは最高のデザインではありません...