<分区>
在我的应用注册过程中,系统会询问用户是否有邀请码。这是一种识别“VIP”用户并立即授予他们访问权限的方法,而不是将他们放在等候名单上。
我已经(大部分)弄清楚了一切,但对于如何创建唯一代码集以及存储它们的最佳方式一无所知。对于这样的事情,普遍接受的做法是什么?我应该如何将这些值存储在 SQL 中(作为字符串,或作为二进制值,或什么?)
谢谢!
编辑 1
- 任何一组随机的数字/字母都可以。不需要任何特定格式。
- 每个VIP用户都会有自己的代码
- 将(可能/希望)分发几千个代码。
标签 c# sql-server
<分区>
在我的应用注册过程中,系统会询问用户是否有邀请码。这是一种识别“VIP”用户并立即授予他们访问权限的方法,而不是将他们放在等候名单上。
我已经(大部分)弄清楚了一切,但对于如何创建唯一代码集以及存储它们的最佳方式一无所知。对于这样的事情,普遍接受的做法是什么?我应该如何将这些值存储在 SQL 中(作为字符串,或作为二进制值,或什么?)
谢谢!
编辑 1
最佳答案
假设您有关于用户的被认为是唯一的信息,例如电子邮件,您可以根据该信息创建哈希码。
userInfo.email.GetHashCode();
现在这不是非常漂亮。但它有效。
我使用的另一种方法是创建励志名言词典。 从字典中随机抽取一个,将其放入他们的个人资料中; 我给他们的注册链接在报价字段中预填,如果它通过 URL 进入并且匹配则隐藏它。 当他们提交数据以创建帐户时,他们的电子邮件和报价必须匹配。
您需要考虑的是人们尝试破解 VIP 帐户的可能性有多大。如果安全是一个问题,那么您需要发送一个加密的散列。但如果这不能保护“高值(value)”目标,那么请考虑用户体验并提升您的品牌。这就是我选择引用的原因。
如果用户不能从邀请中干净地复制和粘贴,请不要使用用户难以输入的内容。
关于c# - 生成一组(相对)短的 "invitation codes"的好方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24458555/