2010-07-22 5 views
3

그래서 일반적으로 내 asp.net web.config에 내 sql 연결 문자열을 넣고 데이터베이스 연결을 열어야 할 때마다이 문자열을 참조합니다. 그러나이 작업은 내 프로젝트 전체에서 참조됩니다. 이것은 또한 인코딩되지 않은 경우 내 web.config에 내 sql 연결 사용자 이름과 암호를 노출합니다.SQL 연결 방법 및 모범 사례

클래스 또는 클래스 라이브러리에서 연결 방법을 유지하는 가장 좋은 방법은 무엇입니까? 나는 PHP 튜토리얼이 정말 잘 (하지만 그것을 다시 찾을 수 없습니다) 재사용을 허용 봤어요.

답변

5

비록 공통적이지는 않지만 서버/데이터베이스 연결이 항상 바뀔 수 있기 때문에 항상 web.config에 연결 문자열을 유지합니다. 당신은 항상 이런 식으로 뭔가를 추가 할 수있는 코드에서 볼 좀 더 편안하게하려면

String m_Connection = ConfigurationManager.AppSettings["MyConnectionString"]; 

후 단지 어디서나 m_Connection를 참조합니다.

나는 항상 EncryptionProvider를 사용하여 연결 문자열을 암호화합니다.

큰 MSDN 기사 : How To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPI

+0

문자열을 반환 한 정적 클래스를 만든 경우 "MyConnectionString"의 이름을 다른 것으로 변경하면 그 방법으로 한 번만 수행하면됩니다. 말이 돼? Btw 감사합니다! – drpcken

+2

문자열을 반환하는 정적 클래스를 만든 다음 "MyConnectionString"을 다른 것으로 변경하려는 경우 다시 컴파일해야한다는 의미로 클래스 내부의 문자열을 변경해야한다는 의미입니다. 귀하의 애플 리케이션이 다운 타임이나 새로운 설치로 고통 받고 싶지 않다면, 나는 이것을 컴파일 된 클래스에 보관하지 않을 것이며, 이와 같이 구성 문자열을 변경하는 것을 피할 것입니다. – gillyb

+0

이 파일을 가져 오니 죄송 합니다만, 라이브러리에'm_Connection'을 넣으시겠습니까? 어디서나 인스턴스를 생성 할 필요가 없도록 정적으로 만들 수 있습니까? 나는'ConnectionString = m_Connection'을 내가 인스턴스화하지 않고도 원할 때 언제든지 말할 수 있기를 원한다. – drpcken

0

나는 @gillyb에 동의합니다. 대부분의 경우 web.config는 연결 문자열의 위치입니다. 다른 일반적인 대안은 spring.Net 의존 파일을 많이 사용하는 경우 설정 파일입니다. Spring.config 파일을 변경하면 사이트가 다시 작성되지 않는 것을 제외하고는 최종 결과는 동일하지만 web.config를 변경하면 사이트가 다시 작성됩니다.