0

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にリセットされます。
4

1 に答える 1

1

ユーザーごとに一意の文字列 (Guid を使用) を作成し、それをリンクのクエリ文字列として電子メールで送信できます。GET アクションで、ユーザー テーブルと一時パスワード テーブルに対してそれを検証し、ユーザー レコードを取得して、そのユーザーをログイン ユーザーと見なします。

于 2012-09-05T00:21:14.573 に答える