あなたは正しい軌道に乗っているようです。
私もよく似たようなことをします。私はそれを必要としないので一般的ではありませんが、それは非常に簡単に変更できます。
ユーザーが登録したら、クリックするとhttp://domain/member/activate/id
IDがGUIDの場所などに移動するリンクを含むアクティベーション電子メールを送信します。それは私が必要とするすべてです。メンバーIDを調べて有効化します。誰かが新しいメンバーの ID を推測する可能性はかなり低く、仮に推測されたとしても、大惨事にはほど遠いものです。
私が言えることから、より一般的なものともう少しセキュリティが必要なものが必要です。ユーザーと一緒に保存するキー (新しい GUID など) をいつでも作成してから、アクティベーションを呼び出すことができます: http://domain/member/activate/id?key={the guid}
. キーを暗号化することもできます。しかし、それはあなた次第です。
再利用でき、より一般的なものについては、アクティベーション ID のリストを含むアクティベーション コンポーネントを作成できます。ただし、特定の種類のエンティティ (ユーザー登録やフォームの検証など) をアクティブにするには、バックエンドでそれを実行する方法が必要です。たとえば、http://domain/activation/activate/id
内部で呼び出すと、id が検索され、型が取得されます。もちろん、アクティベーション要求は、たとえばユーザー登録時に作成されます。ユーザーがアクティブ化されない可能性があるため、おそらく有効期限/タイムアウトを保存する必要があります。
タイプごとに、関連するコントローラにアクティベーション メカニズムを設定できます:member/activate/key
またはformvalidation/activate/key
. したがって、アクティベーション コントローラーがアクティベートのリクエストを受け取ると、タイプごとに構成されたルートのリストがあり、関連するルートに移動して「実際の」アクティベーションを実行します。
もう 1 つのオプションは、インプロセス コンポーネントにアクティベーションを実行IActivator
させるMemberActivator
ことです。あなたへ)。FormValdationActivator
IActivatorProvider
ActivationRequestCommand
必要に応じて、サービス バス エンドポイントに渡すこともできます。
したがって、多くのオプションがあります。HTH