我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 网络编程 > ASP专区 > Asp基础/应用 > IIS 更新ScriptMaps
热门文章排行
热门文章排行 手推车”功能的实现(10-07)
八大法则防范ASP网站漏洞(10-23)
在JSP中访问数据库大全(10-23)
ASP教程十一、调试ASP脚本(10-23)
虚机服务中常见Asp.Net低级错误一览(03-21)
精采文章排行
精采文章排行 ASP.NET实现抓取网页中的链接(11-15)
ASP连接数据库的11种方法(11-10)
如何动态创建网页的RSS内容摘要(11-10)
ASP网站漏洞及入侵防范方法(11-10)
ASP自定义函数:对字符串正则替换(11-10)
技术专题推荐
网管论坛交流
 

IIS 更新ScriptMaps 

作者:佚名   来源:本站教程   点击:   日期:2007-03-22

A zip file with your code and stylesheet is also available for download. Make sure you right click on the link and choose Save Target As...

To use the colored code in your pages link to the stylesheet colorcode.css and copy everything between the <pre class='coloredcode'>...</pre> tags. Feel free to modify color assignment in the stylesheet as you wish.


--------------------------------------------------------------------------------

//**************************************
// for :Dynamic ScriptMapping with Metabase
//**************************************
Copyright (c) 2003, Lewis Moten. All rights reserved.
//**************************************
// Name: Dynamic ScriptMapping with Metabase
// Description:Allows you to assign almost any extension to be processed by the ASPX script processor. You may add, update, and remove the extension progromatically without opening the IIS Manager. Great for those of you who do not have access to the machines desktop (such as hosted at other ISPs).
// By: Lewis E. Moten III
//
//
// Inputs:None
//
// Returns:None
//
//Assumes:None
//
//Side Effects:None
//This code is copyrighted and has limited warranties.
//Please see http://www.Planet-Source-Code.com/xq/ASP/txtCodeId.1586/lngWId.10/qx/vb/scripts/ShowCode.htm
//for details.
//**************************************

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ext As String = "GIF"
' Setup extension to be processed by ASPX script processor
Response.Write("&lt;BR>Add: " & Mapping(ext, MappingAction.Add))
' Update extension to be processed by latest ASPX script processor
Response.Write("&lt;BR>Update: " & Mapping(ext, MappingAction.Update))
' Setup extension so that it is not processed by any script processor
Response.Write("&lt;BR>Delete: " & Mapping(ext, MappingAction.Delete))
End Sub
Enum MappingAction
Add
Update
Delete
End Enum
Private Function Mapping(ByVal ext As String, ByVal action As MappingAction) As Boolean
' Assigns the ASPX processor to the extension specified.
' See IIS documentation for information regarding script mapping
' http://localhost/iishelp/iis/htm/asp/apro9tkj.htm
' Example of Script Mapping:
' ".gif,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,1,GET,HEAD,POST,DEBUG"
Dim APPL_MD_PATH As String
Dim AppPath As String
Dim App As DirectoryEntry
Dim ScriptMaps As ArrayList
Dim ExtentionExists As Boolean = False
Dim ScriptProcessor As String = ""
Dim Flags As String = "5"
Dim IncludedVerbs As String = "GET,POST,HEAD"
Dim NewMap As String = "{0},{1},{2},{3}"
' Make sure ext is prefixed with "."
If Not ext.IndexOf(".") = 0 Then ext = "." & ext
' Make sure ext is lowercase
ext = ext.ToLower
' Do our best to prevent problems with default script processors
Dim BadExt As String
BadExt = ".asa.asax.ascx.ashx.asmx.asp.aspx.asd.cdx.cer.config."
BadExt &= "cs.csproj.idc.java.jsl.licx.rem.resources.resx.shtm."
BadExt &= "shtml.soap.stm.vb.vbproj.vjsproj.vsdisco.webinfo."
If Not BadExt.IndexOf(ext & ".") = -1 Then
Return False
End If
Response.Write("got here!")
Response.End()
' Get application metadata path
APPL_MD_PATH = Request.ServerVariables("APPL_MD_PATH").ToString
' Format path for ADSI
AppPath = Replace(APPL_MD_PATH, "/LM/", "IIS://localhost/")
' Attempt to acquire the object
Try
If DirectoryEntry.Exists(AppPath) Then
App = New DirectoryEntry(AppPath)
End If
Catch ex As Exception
Return False
End Try
' Get a list of all script mappings
ScriptMaps = New ArrayList(CType(App.Properties("ScriptMaps").Value, Object()))
' If we are not deleting a script map
If Not action = MappingAction.Delete Then
' We need to get the latest processor installed
' that handles aspx pages.
For Each Map As String In ScriptMaps
' if the first value of the string is an ASPX page
If Split(Map, ",", 4)(0) = ".aspx" Then
' The latest script processor is the second
' value in the comma delimited string
ScriptProcessor = Split(Map, ",", 4)(1)
Exit For
End If
Next
' Processor not found!
If ScriptProcessor = "" Then
App.Dispose()
App = Nothing
Return False
End If
End If
' Find out if extension exists
For index As Integer = 0 To ScriptMaps.Count() - 1
' get current map
Dim map As String = ScriptMaps(index).ToString
' if we found the extension
If Split(Map, ",", 4)(0) = ext Then
' Determine results based on action
If action = MappingAction.Add Then
' impossible to add if it exists
App.Dispose()
App = Nothing
Return False
ElseIf action = MappingAction.Update Then
' update the map with latest script processor
ScriptMaps(index) = NewMap.Format(NewMap, ext, ScriptProcessor, Flags, IncludedVerbs)
Exit For
ElseIf action = MappingAction.Delete Then
' delete the map
ScriptMaps.RemoveAt(index)
Exit For
End If
End If
Next
' Is user attempting to add map?
If action = MappingAction.Add Then
' Build the new map
ScriptMaps.Add(NewMap.Format(NewMap, ext, ScriptProcessor, Flags, IncludedVerbs))
End If
' Save the new set of script maps
App.Properties("ScriptMaps").Value = ScriptMaps.ToArray
App.CommitChanges()
App.Dispose()
App = Nothing
Return True
End Function



文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·ASP中巧用Response属性 ·第六课:ASP脚本循环语句
·在 Web 页上使用条件数值格式 ·连接数据库查询手册(不仅仅适用于asp)
·警惕"给你的FileSystemObject对象加把锁" ·用ASP做全文检索

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。