Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要向windows窗体添加用户帐户的建议吗_C#_Security_User Accounts - Fatal编程技术网

C# 需要向windows窗体添加用户帐户的建议吗

C# 需要向windows窗体添加用户帐户的建议吗,c#,security,user-accounts,C#,Security,User Accounts,所以我继承了这个项目,它有大约20个表单、数百个控件和数万行代码。我已经做了一段时间了,现在我的老板要求增加用户帐户 基本上,将有不同的级别,如用户,主管,和管理员。启动应用程序时,您必须登录,它将根据某种数据库检查您的登录凭据,并确定您拥有何种权限 User将禁用主窗体上的所有控件,除了Go按钮(这样做的好方法?)Supervisor将启用所有功能,并可以创建用户帐户(仅以某种形式)管理员与主管相同,但也可以备份用户帐户 现在我的问题是我不确定如何实现这个。我无法查询在线服务或数据库,因为该程

所以我继承了这个项目,它有大约20个表单、数百个控件和数万行代码。我已经做了一段时间了,现在我的老板要求增加用户帐户

基本上,将有不同的级别,如
用户
主管
,和
管理员
。启动应用程序时,您必须登录,它将根据某种数据库检查您的登录凭据,并确定您拥有何种权限

User
将禁用主窗体上的所有控件,除了
Go
按钮(这样做的好方法?)
Supervisor
将启用所有功能,并可以创建用户帐户(仅以某种形式)<代码>管理员与
主管
相同,但也可以备份用户帐户

现在我的问题是我不确定如何实现这个。我无法查询在线服务或数据库,因为该程序必须在没有internet连接的情况下可用。在计算机上有一个外部文件的问题是有人可以编辑或删除它

我的想法是将用户帐户存储在应用程序的
Settings
类中,但即使这样也会存储一个外部配置文件。我想我需要它能够存储在可执行文件中,但也可以保存并作为文件导入


显然,密码也必须在这个文件中进行散列。是否有人知道任何好的且易于使用的类(最好是没有使用限制的类,因为此应用程序将在商业上销售)。用户名也应该散列吗?因为如果有人得到了文件,他们也不应该知道所有的用户名,因为这样可以更容易地猜测密码。

你的老板要求对你的应用程序进行重大调整

如果不知道你的所有要求,我就不能真正地把你推向一个或另一个方向。签出(也可以在里面),它可以帮助你了解你所要完成的范围,以及识别你需要考虑的一些设计/架构模式。
处理安全注意事项并描述不同的身份验证模型。这至少应该为您提供一个良好的起点。

您不能信任客户端进行身份验证。重要的是数据。无论在应用程序中放置什么控件,如果可以直接读写数据,它们都是无用的。我的第一次攻击是将我的哈希密码作为管理员的哈希粘贴到配置中。我现在有管理员权限。