gpt4 book ai didi

c# - 如何创建唯一的激活码?

转载 作者:太空狗 更新时间:2023-10-29 23:07:35 25 4
gpt4 key购买 nike

我正在尝试创建数据库中尚不存在的唯一激活码。我的问题是如何测试它?

我尝试使用断点,然后将数据库表更改为新结果,但它没有启动

private string CreateActivationCode()
{
string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Random random = new Random();
string result = new string(
Enumerable.Repeat(chars, 4)
.Select(s => s[random.Next(s.Length)])
.ToArray());

IEnumerable<string> existingActivationKeys = _mobileDeviceService.GetAll().Select(x => x.UsageKey).ToList();

if (existingActivationKeys.Contains(result))
{
//USE GO TO????
CreateUsageKey();
}

return result;
}

最佳答案

正如 Dean Ward 在他的评论中建议的那样,您可以改为使用 GUID 作为激活 key 。

如何做到这一点的示例如下:

private string CreateActivationKey()
{
var activationKey = Guid.NewGuid().ToString();

var activationKeyAlreadyExists =
mobileDeviceService.GetActivationKeys().Any(key => key == activationKey);

if (activationKeyAlreadyExists)
{
activationKey = CreateActivationKey();
}

return activationKey;
}

我已使用“GetActivationKeys”使我的解决方案与您的“GetAll”方法保持一致;但是,我可能会实现一种方法来执行数据库查询以检查 key 是否存在(将所有激活 key 带回您的服务并不是最高效的解决方案)。

生成重复 GUID 的可能性非常很低。关于 GUID 的一篇不错的文章是 here .

关于c# - 如何创建唯一的激活码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22824210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com