2012-04-19 11 views
1

登録フォームを入力していますが、フォームに記入すると登録が延期されますユーザーが電子メールを受信して​​電子メールがOKであることを確認するまで、電子メールに返信すると、登録は完全に進められます。asp.net mvc 3 - 電子メールを送信し、検証の戻り値を取得する(登録、フォーム検証...)

私はプロセスを自動で行いたいと思っています。ユーザーは何かectを入力する必要はなく、確認するために電子メールをクリックする必要があります。

可能であれば、プロセスは登録プロセス以外のタスクでも利用できるようにしたいと思います。

123456が生成されたすべての方法チェック/ 123456を実行する必要がありますか、それとも、コンポーネントを実行するためのより良い方法がありますか?あなたの経験は、あなたがあなたが何をやったかのサンプルを提供動けなくなる場合は、再度尋ねる...あなたが私はあなたが、少なくともコードを起動しようと提案する開発者であれば

おかげ

答えて

1

あなたは正しい軌道上にあるように見えます。

私はよく似たようなことをします。私はそれを必要としないので一般的ではありませんが、あなたはそれをかなり簡単に変更することができます。

ユーザーが登録したら、クリックするとhttp://domain/member/activate/idなどのGUIDに移動するリンクを含むアクティベーション電子メールを送信します。それは私が必要なすべてです。私はメンバーのIDを調べ、それをアクティブにします。誰かが新しいメンバーを推測する可能性は、かなりスリムで、たとえそれがあっても、非常にの電車から離れている。

より一般的で安全なものが必要なことがわかります。ユーザーと一緒に保存してからアクティベーションコールを保存するキー(新しいGUIDなど)を作成することもできます。http://domain/member/activate/id?key={the guid}。鍵を暗号化することさえできます。しかし、それはあなた次第です。

再利用可能でより汎用的なものについては、アクティブ化IDのリストを含むアクティベーションコンポーネントを作成できます。しかし、特定のタイプのエンティティ(ユーザー登録やフォームの検証など)を有効にするには、バックエンドで実行する方法が必要です。たとえば、http://domain/activation/activate/idを内部で呼び出すと、idを参照して型を取得します。アクティベーション要求は、もちろん、ユーザが登録するときに作成されます。ユーザーが決してアクティブにならない可能性があるため、有効期限/タイムアウトを保存することをお勧めします。

それぞれのタイプについて、関連するコントローラの起動メカニズム(member/activate/keyまたはformvalidation/activate/key)を使用できます。したがって、アクティベーションコントローラがアクティブ化する要求を受け取ると、タイプごとにルートのリストが設定され、関連するルートにナビゲートして「実際の」アクティベーションを実行します。

別のオプションは、インプロセスコンポーネントを持つことである活性化などを実行:MemberActivatorまたはFormValdationActivatorによって実装IActivatorインタフェースをして、タイプ(.NETタイプまたは文字列をもとに、あなたに関連するプロバイダを与えるIActivatorProvider実装を持っていますプロバイダーに入力してください---それはあなた次第です)。

サービスバスのエンドポイントに合わせてActivationRequestCommandを渡すこともできます。

多くのオプションがあります。 HTH

+0

こんにちはエベン、帰りにありがとう、私は考えなかった有効期限/タイムアウトプロセスとIActivator。 – dtjmsy

0

参考になる返します。あなたがする探しているもの

は、基本的には、ページへの投稿は、登録を完了することを一時的なURLを使用している...

+0

これは、私がコーディングする予定のものですが、前に正しい軌道に乗っていることを確認する前に... – dtjmsy

関連する問題