2012-01-10 20 views
2

我有一個使用窗體身份驗證在asp.net mvc中構建的Web應用程序。如何在ASP.NET MVC中實現邀請代碼

我想知道如何正確地實現其新用戶必須以創造我的網站上的帳戶輸入邀請碼的系統。

基本上,我想用開箱賬戶控制器和模型儘可能的帳戶創建。

如果用戶沒有輸入有效的邀請碼,我是否需要阻止訪問註冊頁面?

有關如何完成此任務的任何示例?

UPDATE:

看來,最簡單的解決辦法是隻作驗證碼註冊頁面上的必填字段。但是,我覺得這不是解決這個問題的最優雅的方法。

另一個想法:讓爲登記註冊頁面GET方法採取InviteCode作爲參數(在查詢字符串中傳遞),並重定向到另一個網頁代碼是否爲空或無效。有沒有人看到這種方法的任何問題?

+0

一個選項,您可以在註冊視圖模型上使邀請碼成爲必填字段。 – danludwig 2012-01-10 20:49:43

+0

這是我最初的想法,但真的想知道是否有更乾淨的方法來實現這一點。這很可能是我的備用計劃。最終,我將不得不在主頁上有一個文本框供用戶輸入邀請碼,並在註冊頁面有效的情況下定向到註冊頁面 – stephen776 2012-01-10 20:51:57

+0

像亞當說的那樣,您需要添加一個字段到註冊視圖模型並對其進行驗證。或者您可以將有效邀請碼存儲在TempData中,然後在註冊GET操作方法中查找它。無論如何,你將不得不從oob代碼改變。你願意改變視角模型還是控制器? – danludwig 2012-01-10 21:18:15

回答

4

作爲最終用戶,我希望在進入我的賬戶詳細信息之前輸入代碼。如果我只是爲了找出我有一個無效代碼而輸入它們,我會非常生氣。

所以你的選擇將可能是:

  1. 他們進入了前方(REG頁面上提到的)
  2. 輸入它們相同的註冊頁面上,隱藏適用的表單元素。 2a。註冊碼由ajax檢查,並顯示帳戶詳細信息。

註冊代碼與帳戶細節附加的驗證一起發佈。

可以使用遠程驗證,json調用等來檢查該字段。

遠程驗證:http://completedevelopment.blogspot.com/2011/08/remote-ajax-validation-in-mvc3.html

或JSON呼叫來驗證,或頭版,或.. 的位置選項是真的取決於你。令牌的驗證應該足夠簡單,並且不必與帳戶代碼完全相關。

+0

我同意,我的註冊頁面在任何重要的個人資料信息給出之前完成(這發生在不同的頁面上) – stephen776 2012-01-10 21:13:18