[英]How to validate a logged in user against string key (serial key) to carry out some specific actions in asp.net mvc?
我是asp.net mvc的一个完整的初学者,也坦率地说也是编码。 我正在创建我的第一个MVC应用程序。 我设置了一个asp.net身份系统,它工作正常。 我的控制器中有一些操作方法,我希望已登录的用户提供一个序列号(14个字母数字字母),以便被授权执行某些任务。 我已经阅读了大量有关自定义AuthorizeAttribute
的文章,但是与其提出解决方案,不如说是增加了难度。
这些串行密钥应保存在应用程序中的某个位置,也可以保存在后端数据库中。 想要访问特定操作方法的用户应提供一个序列号。 整个场景就像许可软件或防病毒软件一样。 关于此的任何实际示例或特定教程都将有很大帮助。
谢谢
您可以将串行密钥另存为会话变量。 但是,这意味着每次会话超时时,用户都必须为每个操作提供串行密钥。 最好创建一个单独的数据库表来保存可用于验证用户身份的用户ID的序列号。
如OP所要求的,例如哈希,我将在主题上进行扩展。 当我们谈到网络安全时,首先想到的是哈希。 什么是哈希? 散列是数据编码的一种方式。 例如,您有密码,如何保护它? 您将其哈希并存储在数据库中。 当用户第二次尝试登录时,您的密码将被散列并存储在数据库中。 现在,他输入了一个密码,您对它进行哈希处理,看看它是否与数据库中的密码匹配。
对于您的特定情况:
用盐散列的示例:
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);
}
不幸的是,软件安全性很多。 在涉及Web应用程序时,必须先做一些研究,然后才能安全一些。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.