我是新来的,也是C#的新手。已经玩了一下并且掌握了基本功能,但现在我已经深入挖掘了我的技能水平。
我已经创建了一个程序,您必须登录并且我已经在包含所有数据的同一项目中创建了一个dll。我这样做是因为我希望能够通过程序改变数据。有ftp函数和simular函数,该程序适用于几个不同的用户,因此我无法为每个人保存相同的密码和数据。
调用dll中的数据来获取密码没问题,但我也想通过设置表单在dll中更改密码。我怎么能这样做?
主要计划的一部分:
public static string updatePass()
{
}
public void apply_Click(object sender, EventArgs e)
{
string newPass = newPassField.Text;
string rePass = rePassField.Text;
int pass_value = newPass.CompareTo(rePass);
if (pass_value == 0)
{
}
else
MessageBox.Show("Error: The passwords does not match!");
}
密码所在的dll的一部分:
public static string passData(string password = null)
{
return (password);
}
答案 0 :(得分:3)
一般情况下,你没有。 DLL是代码,而不是数据。要做你想做的事,你真的应该将数据存储在某个地方(数据库,平面文件,等等),然后使用你的代码来读/写它。当然,对于密码,你要确保它们是安全的哈希。
答案 1 :(得分:0)
您应该知道,使用reflector等工具访问dll的任何人都可以相对轻松地找到代码中的任何密码。
如果您确实将凭据与dll一起传递,请确保正确保护它们。如果您要将它们存储在配置文件中,this article会更好地加密它们。
答案 2 :(得分:0)
老实说,最好的办法是避免将密码存储在DLL中,因为DLL文件中没有非静态数据的持久存储。因此,您可以在DLL中存储常量,但不能存储密码。现在,如果你愿意,你可以将用户的密码存储在用户特定的注册表项中(我希望加密:))然后从DLL中访问它,这样就可以让你产生将密码存储在DLL中的错觉让你有点想去的地方。
您还可以查看(如果您使用的是3.5+)使用C#的internal settings mechanism - 这将让您透明地从winform中写入数据,然后从DLL中读取它,而不必担心-WHERE-它被存储了。
祝你好运!答案 3 :(得分:0)
使用设置文件。视觉工作室已经支持这个。也永远不会存储纯文本密码,只存储密码哈希。