我有一个带有 ASP.NET Web API 服务器的 WPF 客户端。我想为使用客户端的任何特定 Windows 用户生成一个唯一 key ,以便 Web API 可以阻止该用户的多次登录尝试。我首先考虑只使用:
Environment.UserDomainName + "\" + Environment.UserName
但这对于许多用户来说可能是一样的。我不想包含机器名称,因为我想跟踪该用户,无论他们使用什么机器。如何使用 UserDomainName + "\"+ Environment.UserName
组合下的客户端应用程序为一个特定的 Windows 用户创建唯一 key ,无论他们在哪台计算机上使用它? p>
注意: key 应防止用户更改,以便用户更改 key 以防止被锁定会使其无效。没有本地数据库,因此目前 key 存储在用户主目录中的用户设置文件中。但是,文件存储在哪里并不重要,其计算机上的任何管理员都可以访问它,并且作为家庭用户,他们通常自己就是管理员。
最佳答案
您可以使用 GUID 系统,例如:
key = Guid.NewGuid() + "\\" + Environment.UserDomainName + "\\" + Environment.UserName;
一个问题是,重新生成相同 GUID 的可能性非常小,为了防止这种情况,您可以将所有“使用的”GUID 存储在列表/字典中,并在任何重复时重新生成一个。
关于c# - 为一个 Windows 用户生成唯一 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41339233/