GETリクエストから組み込みの[HttpPost]ログオンメソッド(アカウントコントローラー内)を呼び出せるようにする必要があります。基本的に、新しいアカウントには一時的なパスワードが割り当てられ、電子メールで配信されます。ユーザーは、MVCアプリのアカウントコントローラーで処理される電子メール内のリンク(URLにuseridとtemp pwを含む)をクリックします。これをどう処理するかわかりません。コントローラのGETアクションメソッドからPOSTログオンアクションメソッドにリダイレクトすることは可能ですか?HttpContextオブジェクトを維持しながら、これをどのように実行しますか?これは、ユーザーとpw文字列パラメーターを使用して新しいGETログオンメソッドを作成し、POSTメソッドにあるロジックを(MembershipServerオブジェクトとFormsServiceオブジェクトを使用して)再作成する以外には実行できないようです。
編集:この投稿をフォローしている人にとって、私が実装した解決策は次のとおりです:
- コメントで@Shyjuの推奨事項を使用して、電子メールリンクに応答する新しいGETアクションメソッドを作成しました。このメソッドは、渡されたuser\pwの非表示の入力と送信ボタンを含む「RegisterNewUser」ビューを返します。
- ビューは通常のログオン方法に戻ります。ユーザーまたはpwが変更されていない場合、ユーザーは認証されます
- ユーザーオブジェクトプロパティ「MustChangePassword」をテストするグローバルアクションフィルターを追加しました。trueの場合、パスワード変更アクションメソッドにリダイレクトされます。これは、アカウントコントローラーを除くすべてのコントローラーのすべてのメソッドで発生します(したがって、実際にログオン、chg pw、およびその他のメソッドを実行できます)
- 次に、「ChangePassword」POSTメソッドで、pwの変更が成功すると、「MustChangePassword」プロパティがfalseにリセットされます。