게시판 본문 Active Directory Service Interface - Read Only
re: iis에 mime타입추가.. |
---|
작성자: 송원석
작성일시: 2003-04-23 22:28,
조회수: 3,968
|
안녕하세요? 송원석 입니다. ^_^
물론 질문하신 MIME Type 매핑은 ADSI 로 처리가 가능합니다. 다만 한 가지 우려되는 점은 인스톨쉴드 작업중 웹 루트와 관련되는 부분을 Registry 로 처리하셨다고 한 말씀을 미루어 짐작해 볼 때, 나그네님께서 ADSI 에 대해서 그다지 친숙하지가 않으시다면 제 얘기가 조금 난해하게 느껴지실 수도 있어서 그것이 걱정입니다... ^_^;;; 일단 Sample 코드를 ASP 로 작성해 보았습니다. 참고하시면 다소나마 도움이 되실 것이라고 생각합니다. 아래의 링크를 클릭하시면 다운로드를 받으실 수 있습니다. IISMimeType_ASP.zip (2k) 대부분 주석으로 설명 처리가 되었습니다만, 몇 가지만 추가로 간단하게 말씀드리고자 합니다. 우선 위의 Sample 코드가 처리하는 작업은 매우 간단합니다. IIS 의 가상 웹 서버에 현재 설정된 MIME Type 의 목록을 보여주고 무조건 임의의 MIME Type 을 일련 번호를 붙여서 하나 추가합니다. Sample 코드를 설치하시고 계속 새로고침을 해보시면 무슨 말인지 쉽게 이해가 가실 거라고 생각합니다. ^_^ 먼저 다음의 코드는 사용자로 하여금 강제로 Windows NT 인증을 하게 하는 코드입니다. 따라서 인스톨쉴드로 작업하실 때는 필요가 없는 코드죠. 이 코드를 추가한 이유는 일반적인 웹 엑세스 권한으로는 IIS 의 Metabase 를 편집할 수 없기 때문입니다. 결론은... 무시하시면 됩니다. ^_^;;; If Request.ServerVariables("LOGON_USER") = "" Then Response.Status = "401 Authorization Required" Response.End End If다음의 코드는 MIME Type 을 추가하고자 하는 가상 웹 서버의 ADSI 개체를 얻는 부분입니다. 이때 IIS://LocalHost/W3SVC/1/ROOT 라는 ADsPath 가 사용되는데, 이 ADsPath 의 의미를 모르신다면 제가 이 자리에서 설명드리기는 조금 곤란합니다. ^_^;; 분량도 상당할 뿐더러 이미 제가 여러차례 말씀드린 내용이므로 ADsPath 에 관해서는 제가 예전에 Taeyo 님 사이트에 올렸던 ADSI 강좌를 읽어보시기를 권해드립니다. Set objWebServer = GetObject("IIS://LocalHost/W3SVC/1/ROOT") aryMimeMap = objWebServer.MimeMap여기에 사용된 ADsPath 를 간단하게나마 설명드리고 넘어가자면 작업을 하고자 하는 가상 웹 서버의 경로를 나타내는 것입니다. 즉 위에 사용된 ADsPath 는 작업하고자 하는 대상이 현재 Local Computer 에 설치된 WWW 서비스중에서 1 번 가상 웹 서버의 Root 디렉터리라는 의미가 됩니다. 가상 웹 서버에 1 번, 2 번 하고 번호가 붙는 이유는 Windows Server 제품군상의 IIS 에는 하나의 IIS 에 여러개의 가상 웹 서버가 동시에 존재할 수 있기 때문입니다. 이에 관한 자세한 내용은 역시 제 ADSI 강좌를 참고하시기 바랍니다. 그 다음줄의 aryMimeMap = objWebServer.MimeMap 라인이 바로 MIME Type 의 정보를 얻어오는 부분입니다. MimeMap 속성은 MimeMap 개체들의 배열을 리턴해주는데, 바로 이 MimeMap 개체 하나하나가 각각 가상 웹 서버에 설정된 MIME Type 과 매칭이 되는 것입니다. 따라서 aryMimeMap 배열을 For 문등으로 루프를 돌면서 현재 설정된 MIME Type 의 정보를 볼 수 있습니다. 제 Sample 코드상에서는 다음이 이 부분에 해당합니다. <%= aryMimeMap(i).Extension %> <%= aryMimeMap(i).MimeType %>단순히 MIME Type 의 정보를 보시기만 하려면 이처럼 aryMimeMap 배열을 루프로 돌리시기만 하면 됩니다. 이제 새로운 MIME Type 을 설정하는 부분을 살펴보도록 하겠습니다. Set objMimeMapEntry = CreateObject("MimeMap") objMimeMapEntry.Extension = ".EC" & Right("0" & iCnt, 2) objMimeMapEntry.MimeType = "EGOCUBE/SAMPLE-MIME-" & Right("0" & iCnt, 2)새로운 MIME Type 을 설정하기 위해서 우선 새 MimeMap 개체를 만들어야 합니다. 그리고 이렇게 만들어진 MimeMap 개체의 Extension 속성과 MimeType 속성에 새로 설정하고자 하는 MIME Type 의 확장자 정보와 Mime Type 정보를 설정합니다. 그런데 MimeMap 개체는 우선 MimeMap 개체의 배열에 들어가야만 하므로 처음에 구했던 aryMimeMap 배열의 크기를 하나 늘이고 새로 만든 MimeMap 개체를 배열의 맨 마지막 인덱스에 추가합니다. Redim Preserve aryMimeMap(iCnt) Set aryMimeMap(UBound(aryMimeMap)) = objMimeMapEntry이제 마지막으로 aryMimeMap 배열을 다시 원래의 objWebServer.MimeMap 속성에 설정하고, 지금까지의 작업을 저장하기 위해서 objWebServer.SetInfo 메소드를 호출하면 작업이 모두 끝납니다. objWebServer.MimeMap = aryMimeMap objWebServer.SetInfo이렇게 설명을 읽어보시면 다소 복잡하게 느껴지실지도 모르겠지만 실제로 코드를 보면 그다지 어려운 부분은 없으니 참고하시고, 또 궁금한 점이 있으시면 글을 남겨주시기 바랍니다. 감사합니다. |
IP 주소: 165.21.154.14
|
전체 421 건의 게시물,
17 페이지로 구성된
Active Directory Service Interface 게시판의
17 페이지입니다.
게시물 | ||||
---|---|---|---|---|
21 | 2003-07-03 | 5,608 | ||
20 | 2003-07-01 | 3,594 | ||
19 | 2003-07-01 | 3,254 | ||
18 | 2003-06-30 | 3,188 | ||
17 |
re: 헤헤..또 왔어요 [1] |
2003-06-30 | 7,165 | |
16 | 2003-06-26 | 3,123 | ||
15 | 2003-06-26 | 3,230 | ||
14 | 2003-06-19 | 3,320 | ||
13 | 2003-06-19 | 3,524 | ||
12 | 2003-06-19 | 3,183 | ||
11 |
초보 |
2003-05-29 | 966 | |
10 | 2003-05-29 | 3,272 | ||
9 | 2003-05-09 | 3,377 | ||
8 | 2003-05-09 | 3,544 | ||
7 | 2003-05-10 | 3,432 | ||
6 | 2003-04-23 | 3,570 | ||
2003-04-23 | 3,968 | |||
4 | 2003-04-24 | 4,078 | ||
3 | 2003-03-26 | 3,931 | ||
2 | 2003-04-15 | 3,731 | ||
1 | 2003-02-22 | 3,563 |