C#通过exe更改dll中的字符串

时间:2011-02-08 19:01:42

标签: c# string forms dll get

我是新来的,也是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);
    }

4 个答案:

答案 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)

使用设置文件。视觉工作室已经支持这个。也永远不会存储纯文本密码,只存储密码哈希。