2013-04-24 2 views
6

을 사용하여 해독하지 못했습니다. 내 응용 프로그램에서 MS SQL 데이터베이스에 연결 중입니다. Microsoft.Data.ConnectionUI 내 응용 프로그램이 내 컴퓨터에서 작동합니다. 나는이 함께해야 할 일은공급자 'RsaProtectedConfigurationProvider'

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; 
     } 

이 내 코드입니다 enter image description here

: 내가 다른 컴퓨터에서이 응용 프로그램을 실행하면 내가 연결 대화 상자를 열 때, 그 오류가 보이십니까?

+0

공급자로부터 오류 메시지를 번역 할 수 있습니까? –

+0

@RemusRusanu 가능합니다. "공급자로부터 오류 메시지 : 잘못된 데이터입니다." – EXTRAM

답변

10

잘못된 데이터는 일반적으로 잘못된 키를 사용하여 발생합니다. 하나의 컴퓨터 (사용자의 dev 컴퓨터?)에서 .config 파일을 암호화하고 다른 컴퓨터에서 해독하려고 시도하는 것 같습니다. 암호 해독 키가 없으므로이 작업을 수행 할 수 없습니다.

암호화 된 구성 섹션은 적절한 키를 사용하도록 응용 프로그램이 실행되는 컴퓨터에서 암호화되어야합니다.

2

예, 내 생각에 웹에 encryption<connectionStrings> 섹션으로 설정되어 있습니다. 이러한 유형의. 제점은 암호화가 수행되지 않은 시스템에 응용 프로그램을 전개 할 때 _ 생합니다. 암호화는 개발 컴퓨터에서 누락 된 시스템 레벨 키를 사용합니다. 당신은 원래 기계 &에 암호화를 제거 할 수 있습니다

  1. 다음 옵션은 특정 키 컨테이너가 & 가져 오기를 암호화하는 동안 응용 프로그램 또는
  2. 원래 컴퓨터에 사용되는 RSA 키 컨테이너를 내보낼 수 있습니다를 실행 내 마음에 와서 새 컴퓨터
관련 문제