asp.net(c#)实现邀请码机制

现在很多网站有一个邀请码机制,比如开源社区,一方面可以防止灌水,另一方面大家都是互相介绍加入网站,提升网站用户层次。维护一个良好的社区环境。本文章就介绍实现邀请码机制。提供C#源代码。

邀请码组成:1-20080330134035-a21f34a965d1cb65 第一位是:用户编号,第二位是年月日时分秒,第三位是校验码。

校验码算法为:用户编号+年月日时分秒+私钥,取16位md5值。

代码:

 
 
string t = DateTime.Now.ToString( " yyyyMMddHHmmss " );
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);
 
加私钥的目的就是为了防止别人知道你的算法后,写注册机(当然了,也要看网站的重要程度,
这样就计算出邀请码了。
 
下面是:
aspx中( 验证邀请码有效性 ):
< asp:TextBox ID = " txtCode "  runat = " server "  Rows = " 10 " ></ asp:TextBox >< asp:RequiredFieldValidator ID = " r6 "  runat = " server "  ControlToValidate = " txtCode "  Display = " Dynamic "  ErrorMessage = " 请填写邀请码 "  SetFocusOnError = " True " ></ asp:RequiredFieldValidator >
< asp:RegularExpressionValidator ID = " RegularExpressionValidator1 "  runat = " server "  ControlToValidate = " txtCode "
Display
= " Dynamic "  ErrorMessage = " 邀请码格式错误 "  SetFocusOnError = " True "  ValidationExpression = " \d+-\d{14}-[\da-f]{16} " ></ asp:RegularExpressionValidator >
 
 
  
后台CS文件( 验证了邀请码的合法性 ):
 
   
string [] tmp  =  txtCode.Text.Split( ' - ' );
BLL.StringUtil.md5(tmp[
0 ] + tmp[ 1 ] + " b497570b-69a2-4bd1-9380-7e74616795ab " 16 ) == tmp[ 2 ]

然后还要把用过的邀请码记录到数据库,下次有新的邀请码来验证的时候,去数据库里比较一下,存在的话,表示是用过的邀请码,已经失效了。

转载于:https://www.cnblogs.com/291099657/archive/2009/06/03/1495527.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值