집 >백엔드 개발 >C#.Net 튜토리얼 >asp.net에서 Access 데이터베이스 다운로드 방지
Access 데이터베이스 다운로드를 방지하는 방법은 매우 오래된 주제이며 인터넷에서 많은 논의가 있습니다. 여기에서는 ASP.NET에서 Access 데이터베이스가 다운로드되는 것을 방지하는 몇 가지 방법을 제공합니다.
여기에서는 Access 데이터베이스 이름이 test.mdb라고 가정합니다.
1. 데이터베이스를 WEB 디렉터리 외부에 배치합니다.
웹 사이트 디렉터리가 D:www인 경우 데이터베이스를 D:data 폴더에 넣은 다음 웹 사이트 프로그램을 수정할 수 있습니다. 연결 문자열 주소 부분은 "D:datatest.mdb"이므로 정상적으로 데이터베이스를 호출할 수 있으나, 웹사이트 디렉터리에 없기 때문에 다운로드할 수 없습니다.
web.config에 데이터베이스 연결 문자열이 구성되어 있다고 가정합니다. 예:
<connectionStrings> <add name="Access" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;data source=d:\data\test.mdb" providerName="System.Data.OleDb" /> </connectionStrings>
2. 데이터베이스를 App_Data 시스템 폴더에 배치합니다.
.Net2.0부터는 특별히 데이터 파일을 저장하는 App_Data 디렉터리를 사용할 수 있습니다. SQL Server Express, XML 및 기타 데이터 파일을 저장합니다. App_Data 폴더에 데이터베이스 파일을 배치하면 다운로드를 방지할 수 있다는 장점이 있습니다. 연결 문자열 데이터베이스의 파일 위치에 대해 DataDirectory 키를 사용하여 실제 경로를 나타낼 수 있으므로 연결 문자열을 얻을 때 더 이상 Server.MapPath() 변환을 사용할 필요가 없습니다.
web.config에 데이터베이스 연결 문자열이 구성되어 있다고 가정합니다. 예:
<connectionStrings> <add name="Access" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;data source=|DataDirectory|test.mdb" providerName="System.Data.OleDb" /> </connectionStrings>
|DataDirectory|는 app_data 폴더를 나타냅니다.
3. 데이터베이스 파일 이름 바꾸기
Access *.asax 이름 바꾸기: ASP.NET의 처리 메커니즘으로 인해 기본적으로 이러한 요청은 직접 거부됩니다. 이 아이디어에 따라 Access의 이름을 *.config, *.vb, *.cs 등으로 바꿀 수도 있습니다.
4. IIS 구성 및 .mdb 파일 형식 매핑 추가
.mdb 확장자 매핑 추가 이 방법은 IIS 설정을 수정하여 수행됩니다. 단 2단계.
1. .mdb 파일 형식을 ASP.NET ISAPI에 매핑하도록 IIS를 구성합니다.
Windows 2003을 예로 들어 "시작" -> 실행 -> "inetmgr"을 입력하고 Enter 키를 눌러 "인터넷 서비스 관리자"를 엽니다. 웹사이트를 마우스 오른쪽 버튼으로 클릭 -> "속성"을 클릭하면 이 사이트의 속성 대화 상자가 나타납니다. "홈 디렉터리" 탭을 클릭하고 "구성" 버튼을 클릭하면 "응용 프로그램 구성" 대화 상자가 표시됩니다. 매핑을 추가하려면 "추가"를 클릭하십시오. 실행 파일 "C:WINDOWS Microsoft.NET Framework v2.0.50727 aspnet_isapi.dll"을 입력하라는 대화 상자가 표시됩니다. 아래 그림과 같이
2. asp.net의 web.config 파일을 구성하고 .mdb 파일 형식을 HttpForbiddenHandler HTTP 처리기에 매핑합니다.
asp.net 애플리케이션 .mdb 파일 형식을 HttpForbiddenHandler HTTP 핸들에 매핑합니다. 이 단계를 수행하려면 Web.config 파일에 다음 구성을 추가해야 합니다
<httpHandlers> <add verb="*" path="*.mdb" type="System.Web.HttpForbiddenHandler" /> </httpHandlers>
5. ACCESS 다운로드 방지 필드를 추가합니다
이 방법의 원리는 다음과 같습니다. 데이터베이스 확장 이름은 .aspx 형식이 됩니다. 이 파일을 원격으로 액세스하면 IIS 서버가 이를 aspx 프로그램으로 실행합니다. 이전에 ACCESS 데이터베이스에 "" 태그 내에서만 실행될 수 있으므로 "missing scriptclosing tag"라는 500 오류가 나타나며 다른 사용자는 ACCESS 데이터베이스를 다운로드할 수 없습니다. 데이터베이스의 텍스트나 메모 필드에 단순히 "
1. 먼저 테이블을 생성하고 SQL 명령 창에 "create table [notdown]([notdown] oleobject)"라는 내용을 입력한 후
을 클릭합니다. 도구 모음 "!"(실행)에서 필드 이름이 "notdown"이고 필드 유형이 "OLE 개체"인 "notdown" 테이블이 현재 데이터베이스에 생성됩니다. 그림 1
2. SQL 쿼리 창의 내용을 다음 명령으로 변경합니다. "insert into [notdown](notdown) 값 (0x3C25) "
이 문장의 의미는 "0x3C25" 데이터를 "notdown" 테이블의 "notdown" 필드에 삽입한다는 것입니다("0x3C25"는 "
실행이 완료된 후 데이터베이스의 "table"을 다시 확인하면 "notdown" 테이블이 추가로 존재하는 것을 확인할 수 있다. 열면 필드에 그림 3과 같이 "Long Binary Data"가 표시됩니다
admin10000.com 여기에 다운로드 방지 데이터 테이블이 준비되어 있습니다. 직접 다운로드하여 자신의 데이터베이스에 붙여넣고 사용할 수 있습니다. notdown 데이터 테이블
팁 1: ASP 웹사이트이든 ASP.NET 웹사이트이든 Access 데이터베이스 접미사를 .asp 및 .aspx로 직접 변경하고 FlashGet과 같은 다운로드 도구를 사용하여 올바르게 복사하세요. 다운로드를 방지하는 역할을 할 수 없습니다.
팁 2: 다섯 번째 방법은 일반적으로 ASP+ACCESS 웹사이트에서 사용됩니다.