現在很多網站有一個邀請碼機制,比如開源社區,一方面可以防止灌水,另一方面大家都是互相介紹加入網站,提升網站用戶層次。維護一個良好的社區環境。本文章就介紹實現邀請碼機制。提供C#源代碼。
邀請碼組成:1-20080330134035-a21f34a965d1cb65 第一位是:用戶編號,第二位是年月日時分秒,第三位是校驗碼。
校驗碼算法爲:用戶編號+年月日時分秒+私鑰,取16位md5值。
代碼:
string k = BLL.StringUtil.md5(User.Identity.Name + t + "b497570b-69a2-4bd1-9380-7e74616795ab", 16);
txt.Text = string.Format("{0}-{1}-{2}", User.Identity.Name, t, k);
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtCode"
Display="Dynamic" ErrorMessage="邀請碼格式錯誤" SetFocusOnError="True" ValidationExpression="/d+-/d{14}-[/da-f]{16}"></asp:RegularExpressionValidator>
BLL.StringUtil.md5(tmp[0]+tmp[1]+"b497570b-69a2-4bd1-9380-7e74616795ab", 16)==tmp[2]
就驗證了邀請碼的合法性。然後還要把用過的邀請碼記錄到數據庫,下次有新的邀請碼來驗證的時候,去數據庫裏比較一下,存在的話,表示是用過的邀請碼,已經失效了。