2012-01-10 16 views
2

フォーム認証を使用してasp.net mvcで構築されたWebアプリケーションがあります。ASP.NET MVCで招待コードを実装する方法

新しいユーザーが自分のサイトにアカウントを作成するために招待コードを入力する必要があるシステムを適切に実装する方法を知りたいと思います。

基本的には、アカウント作成のためにアカウント管理者とモデルをできるだけ使用したいと思います。

ユーザーが有効な招待コードを入力しなかった場合は、登録ページへのアクセスをブロックするだけですか?

これを実行する方法の例はありますか?

UPDATE:

最も簡単な解決策は、単に確認コード登録ページで必要なフィールドにするであろうと思われます。しかし、私はこれがこの問題を解決する最もエレガントな方法ではないと感じています。

もう1つの考え方:登録ページのGETメソッドでパラメータが(クエリ文字列で渡される)InviteCodeになり、コードがnullまたは無効な場合は別のページにリダイレクトされます。誰もがこのアプローチの問題を見ますか?

+0

1つのオプションとして、招待コードをregister viewmodelの必須フィールドにすることができます。 – danludwig

+0

これは私の最初の考えでしたが、これを達成するためのクリーンな方法があれば本当に不思議でした。これはおそらく私のバックアップ計画です。最終的には、ユーザーが招待コードを入力し、有効であれば登録ページに誘導するためのホームページにTextBoxを置く必要があります。 – stephen776

+0

Adamが言うように、レジスタviewmodelにフィールドを追加する必要があります、およびそれに対する検証。または、有効な招待コードをTempDataに格納し、Register GETアクションメソッドで探すことができます。いずれにしても、あなたはoobコードから変更する必要があります。あなたはむしろビューモデルまたはコントローラを変更しますか? – danludwig

答えて

4

エンドユーザーは、アカウントの詳細を確認する前にコードを入力したいと考えています。私が無効なコードを持っていることを知るためにそれらを入力すれば、私はかなり怒っているでしょう。

だからあなたのオプションは、おそらく次のようになります(REGページ上に述べたように)彼らは、フロントまで入力

  1. が適用フォーム要素を隠し、同じ登録ページにそれらを入力します。 2a。レジコードはajaxによってチェックされ、アカウントの詳細が表示されます。

登録コードは、追加の確認のためにアカウントの詳細とともに掲載されています。

フィールドを確認するためにリモート検証、json呼び出しなどを使用できます。

リモート検証:http://completedevelopment.blogspot.com/2011/08/remote-ajax-validation-in-mvc3.html

か検証するJSON呼び出し、またはフロントページ、あるいはここに... オプションは、あなた次第です、本当に。トークンの検証は簡単に行うことができ、アカウントコードにはまったく関連付ける必要はありません。

+0

実質的なプロフィール情報が提供される前に登録ページが完成しました(これは別のページで行われます) – stephen776

関連する問題