인라인 SQL 호출과 복사/붙여 넣기 기능을 사용하여 거의 독점적으로 작성된 ASP.Net 2.0 웹 응용 프로그램에 데이터 액세스 계층을 추가하는 중입니다. 비즈니스 관련 문제로 인해 한 번에 응용 프로그램의 작은 부분을 다시 만들 수 있습니다 (거대한 재 디자인을 해결할 수는 없습니다). 그래서 느슨하게 연결될 때까지 특정 디자인 결정을해야합니다. 큰 변화를 만들어 적절하게 테스트해라.DAAB를 사용하여 동적 연결 문자열 처리
필자는 엔터프라이즈 라이브러리 데이터 액세스 응용 프로그램 블록을 데이터 액세스 계층의 배관으로 사용하기로 결정했습니다. 이전의 설계 결정으로 인해 문제가 발생했습니다. 현재 사용자가 제공 한 계정 ID를 기반으로 관리 데이터베이스에서 응용 프로그램의 "기본"연결 문자열을 가져와 응용 프로그램을 단일 설치하여 여러 데이터베이스에 액세스 할 수 있습니다. 내 문제는 해당 연결 문자열 (또는 계정 ID)을 DAL로 가져 오는 최상의 방법을 찾는 데 집중합니다.
Public Shared Function GetResultsByKeywords(ByVal key1 As String, ByVal key2 As String, ByVal key3 As String, ByVal key4 As String) As DataTable
Dim db As SqlDatabase = New SqlDatabase(Connection.GetConnectString())
Dim dt As DataTable = New DataTable
Using dr As IDataReader = db.ExecuteReader("sel_eHELP_ITEMS", key1, key2, key3, key4)
dt.Load(dr)
End Using
Return dt
End Function
연결 : 내 현재 해킹-방법은 거기에서 연결 문자열을 얻을 후 다음과 같은 방식으로 DAAB를 사용하는 것입니다, 그래서
이전 구현은 쿠키에 암호화 된 연결 문자열을 저장했다. GetConnectString()이 쿠키에서 연결 문자열을 가져 오는 중입니다.
나는 이것이 가장 좋은 방법이 될 수 없다는 것을 안다. 나는 그것을 고칠 필요가있다. 그러나 나는 그것을 끝내기위한 "올바른"방법으로 고심하고있다. 어쩌면 내가 연결 문자열로 초기화하고 다른 모든 클래스를 상속받을 수있는 기본 클래스를 만들지 만, 어떻게 보이게 될지, 그리고 그 클래스의 인스턴스를 처음 초기화 할 위치를 모르겠습니다. DAL 기능을 사용하기 전에 모든 페이지에서?
모든 안내를 받으실 수 있습니다. 고맙습니다.
업데이트
나를 명확히하자. 최대 3 ~ 4 개의 다른 연결 문자열이 설치에 사용됩니다. "계정 ID"는 사용자 ID가 아니며 여러 사용자가 본질적으로 연결할 데이터베이스를 지정하는 데 사용됩니다.
감사합니다. 이것은 정확하게 문제를 해결하는 방법이 아니었지만 여전히 내가 사용한 기본 개념을 보여줍니다. 쿠키에 더 이상 연결 문자열이 저장되지 않습니다! – smathson