gpt4 book ai didi

c# - 如何根据字符串键(序列键)验证登录用户以在 asp.net mvc 中执行某些特定操作?

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:06 25 4
gpt4 key购买 nike

我是 asp.net mvc 的完全初学者,坦率地说也是编码方面的初学者。我正在创建我的第一个 MVC 应用程序。我设置了一个 asp.net 身份系统,它工作得很好。我的 Controller 中有一些操作方法,我希望登录用户提供一个序列号(14 个字母数字字母)以便获得执行某些任务的授权。我已经阅读了大量关于自定义 AuthorizeAttribute 的文章,但我没有提出解决方案,而是让它变得更加困难。

这些序列号应该保存在应用程序的某个地方,也许在后端数据库中。想要访问特定操作方法的用户应提供序列号。整个场景就像许可软件或防病毒软件。任何现实的例子或具体的教程都会有很大帮助。

谢谢

最佳答案

正如 OP 所要求的,例如散列,我将扩展主题。当我们谈到网络安全时,首先想到的是哈希。什么是散列?散列是数据编码的一种方式。例如你有一个密码,你会如何保护它?您对其进行哈希处理并将其存储在数据库中。当用户第二次尝试登录时,您会将他的密码散列并存储在数据库中。现在他输入一个密码,你对其进行哈希处理并查看它在数据库中是否匹配。

针对您的特定情况:

  • 您可能想要访问包含散列序列键值的存储。
  • 当用户输入一些序列 key 时,您使用相同的方法对其进行哈希处理(与用于哈希序列 key 的方法相同)。
  • 在您的存储中查找与用户提供的值相匹配的内容。如果匹配,则用户已插入正确的序列号。

用盐散列的例子:

static byte[] GenerateSaltedHash(byte[] plainText, byte[] salt)
{
HashAlgorithm algorithm = new SHA256Managed();

byte[] plainTextWithSaltBytes =
new byte[plainText.Length + salt.Length];

for (int i = 0; i < plainText.Length; i++)
{
plainTextWithSaltBytes[i] = plainText[i];
}
for (int i = 0; i < salt.Length; i++)
{
plainTextWithSaltBytes[plainText.Length + i] = salt[i];
}

return algorithm.ComputeHash(plainTextWithSaltBytes);
}

对于来自 MSDN 的散列数据, SO .关于 hashing 的文章.

.NET hashing class for multiple times.

不幸的是,软件安全有很多问题。在涉及 Web 应用程序时,您必须先进行研究,然后才能确保安全。

关于c# - 如何根据字符串键(序列键)验证登录用户以在 asp.net mvc 中执行某些特定操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36848164/

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