ここで困ったことがあります。私は、認証用の Web サービスと WinForms フロントエンドを使用する多層 CAB アプリケーションに取り組んでいます。
今、パスワードの有効期限を実装するように求められ、必要な詳細を取得し、それらを使用してユーザーのパスワードの有効期限が切れているかどうかを確認しました。唯一のことは、ログインプロセスを一時停止して「リダイレクト」するのに問題があることですChangePassword フォーム。
私が試してきたのは、PasswordExpiredException というカスタム例外をスローし (それが機能しなかった場合は System.Exception を継承し、後で ApplicationExcetion を継承します)、キャッチで ChangePassword.ShowDialog() を呼び出すことです。これは、パスワードの有効期限が切れている場合、私がよく言っていることを実行し、ログオン時に見苦しい例外をスローするため、頭痛の種です。
それで、仕事が終わったら例外をスロー解除できますか?または、アイデアを破棄して「適切に」実行する必要がありますか? それが何なのか見当もつかない
ログオン時のコールスタックの基本的な実行~~>
Logon.Cs.btnOK_Click ~~> wsAuthentication.GetProvider(GetUserDBInstace(UserName))~~>
ASPNETAuthentication.Authenticate(username,password)~~>
CheckIfExipred(MembershipUser.LastPasswordChangedDate)
~Y~> throw PasswordExpiredException; //getting it to go back all the way to the UI, opening up ChangePassword.cs, leaving me with an authenticated user who's about to change his old password
~N~> //continue login, ignoring all my hard work