微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 使用提供程序’RsaProtectedConfigurationProvider’无法解密

在我的应用程序中,连接到MS sql数据库,我使用的是Microsoft.Data.ConnectionUI
我的应用程序在我的计算机上工作.如果我在另一台计算机上运行此应用程序,当我打开连接对话框时,我看到该错误

这是我的代码

try
    {
        connectionString = ShowDialogConnection();

        sqlConnection connect = new sqlConnection(connectionString);
        connect.open();
        backgroundWorker1.RunWorkerAsync();


    }
    catch (Exception exc)
    {
        MessageBox.Show(exc.ToString());
    }

string ShowDialogConnection()
        {
            string conn = "";
            DataConnectionDialog dlg = new DataConnectionDialog();
            DataSource.AddStandardDataSources(dlg);
            dlg.SelectedDataSource = DataSource.sqlDataSource;
            dlg.SelectedDataProvider = DataProvider.sqlDataProvider;
            if (ConfigurationManager.ConnectionStrings["ConStr"] != null)
            {
                dlg.ConnectionString = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
            }
            if (DataConnectionDialog.Show(dlg) == DialogResult.OK)
            {
                if (dlg.ConnectionString != null && dlg.ConnectionString != "")
                {
                    conn = dlg.ConnectionString;
                    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                    ConnectionStringsSection csSection = config.ConnectionStrings;
                    csSection.Sectioninformation.ProtectSection("RsaProtectedConfigurationProvider");
                    csSection.Sectioninformation.ForceSave = true;
                    ConnectionStringSettings csSettings = new ConnectionStringSettings("ConStr",dlg.ConnectionString,"System.Data.sqlClient");
                    if (csSection.ConnectionStrings["ConStr"] != null)
                        csSection.ConnectionStrings.Remove("ConStr");
                    csSection.ConnectionStrings.Add(csSettings);
                    config.Save(ConfigurationSaveMode.Modified);
                }
            }
            return conn;
        }

我需要做什么呢?

解决方法

坏数据通常是由使用错误的密钥引起的.听起来你正在加密一台机器(你的开发机器上的.config文件?)并试图在另一台机器上解密.这不起作用,因为缺少解密密钥.

加密的配置部分应在运行应用程序的计算机上加密,以便使用适当的密钥.

原文地址:https://www.jb51.cc/csharp/96042.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐