2014-02-15 3 views
0

My-SQL을 사용하는 C# winform 응용 프로그램을 백 엔드 데이터베이스로 사용하고 있습니다. 연결 문자열에 사용자 이름과 암호를 동적으로 제공하십시오.

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionstring> 
    <addkey="MySQL.DB"value="server=localhost;database=mysqldbname;user=username;password=12345678;"> 
    </add> 
</connectionstring> 
</configuration> 

우리가 사용자 이름과 비밀번호를 입력하여,하지의 App.config에서하지만 응용 프로그램의 사용자로부터 사용자 이름과 암호를 제공 할 수있는 방법이 있나요 : app.config 파일을 사용하여 응용 프로그램은 다음과 같이 데이터베이스를 연결하는 연결 문자열을 읽어 ? 우리는 민감한 데이터를 보호 할 수 있습니다. 기타 정보는

<appSettings> 
     <add key="ConFormat" value="server=localhost;database=mysqldbname;user={0};password={1};"/> 
    </appSettings> 

appSettings 그것을 읽게하고, 값을 설정할 수있는 데이터베이스 이름, 서버 등과 같은

아메드

답변

3

을의 app.config에서 읽을 확인 있습니다

var formatString = ConfigurationManager.AppSettings["ConFormat"].ToString(); 
var conString = string.Format(formatString , SecureUserName, SecurePW); 
1

원시 ADO.NET을 사용하는 경우 연결 문자열 작성기 (예 : MySqlConnectionStringBuilder)를 사용할 수 있습니다. 구성 파일에서 연결 문자열을 사용하여 새 인스턴스를 만들고 적절한 속성을 설정 한 다음 ConnectionString 속성에서 결과를 가져옵니다.

그런데 암호로 보호 된 구성을 사용하여 암호 및 기타 중요한 데이터를 구성 파일에 저장하여 암호화 할 수 있습니다.

+0

는 매우있어 @jmcilhinnet 좋은 제안이지만 Damith는 예를 들어 더 나은 솔루션을 제공합니다. – Ahmed

+0

아니요, Damith는 예제를 통해 열등한 솔루션을 제공했습니다. 예를 복사하여 붙여 넣을 수 있고 자신을 생각할 필요가 없기 때문에 이것을 사용하고 싶다면 그것은 당신에게 달려 있습니다. – jmcilhinney

+0

사실 ... 그게 아니라면 그냥 복사/붙여 넣기보다 ... 연결에 훨씬 더 많은 변화를해야합니다. 초보자가 문제를 게시 할 때, 그것은 증상 일 뿐이며 전체 프로젝트가 아닙니다. Damith의 솔루션은 프로젝트에서 구현할 수있는 명확한 경로를 제공합니다. – Ahmed

0

변경이

<add key="MySQL.DB"value="server=localhost;database=mysqldbname;user=&usernamefromuser;password=&passfromuser;"> 

등의 app.config의 코드가 연결 버튼을 추가하고 사용자 이름과 암호를이 텍스트 상자

버튼 코드 :

//other code for mysql variables ... 
string connectionStr= connStrFrom_App_Config.Replace("&usernamefromuser",texBox1.Text).Replace("&passfromuser",textBox2.Text); 
//other code for connecting 
관련 문제