home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1998 February
/
CHIP_2_98.iso
/
software
/
pelne
/
optionp
/
iis4_07.cab
/
IISsettings.bas
< prev
next >
Wrap
BASIC Source File
|
1997-11-01
|
8KB
|
270 lines
Attribute VB_Name = "Settings"
Option Explicit
Global Const APP_PATH As String = "IIS://localhost/w3svc/1/Root/IISSamples"
Global Const APP_NAME As String = "ExAir"
' The main entry into setting all the IIS ExAir options
Public Function IISSettings(strPath As String) As Boolean
On Error GoTo ErrorHandler
NukeApplication
' For debugging only
'MsgBox "Nuked"
SetDir strPath, APP_NAME
SetDir strPath, APP_NAME & "/Catalog"
SetDir strPath, APP_NAME & "/Benefits"
SetDir strPath, APP_NAME & "/FreqFlyer"
SetDir strPath, APP_NAME & "/BusinessPartners"
SetDir strPath, APP_NAME & "/SiteAdmin"
' For debugging only
'MsgBox "Paths set"
SetSecurity strPath
SetErrorRedirects strPath & "ErrPages"
' For debugging only
'MsgBox "About to set applications"
SetApplication APP_NAME, "Exploration Air Sample Site", True
SetApplication APP_NAME & "/Catalog", "Test Catalog Site", False
SetApplication APP_NAME & "/Benefits", "Intranet Benefits", True
' For debugging only
'MsgBox "Applications set"
SetDebug
IISSettings = True
Exit Function
ErrorHandler:
MsgBox "An error occurred while setting ExAir config details." _
& " The error is: " & Hex(Err.Number) & " " & Err.Description, _
vbOKOnly + vbExclamation, "ExAir Config. Error"
IISSettings = False
End Function
' Attempt to delete an existing ExAir application
Private Sub NukeApplication()
Dim oRoot As Object
On Error Resume Next
Set oRoot = GetObject(APP_PATH)
If Err <> 0 Then GoTo NoPath
oRoot.Delete "IIsWebDirectory", APP_NAME
If Err <> 0 Then GoTo NoWebDir
SmallSleep
oRoot.SetInfo
SmallSleep
NoPath:
NoWebDir:
Set oRoot = Nothing
End Sub
' Set ExAir etc as a directory
Private Sub SetDir(strPath As String, strName As String)
On Error GoTo ErrorHandler
Dim oRoot As Object
Dim oDir As Object
Set oRoot = GetObject(APP_PATH)
SmallSleep
SmallSleep
Set oDir = oRoot.Create("IIsWebDirectory", strName)
oDir.SetInfo
Set oDir = Nothing
Set oRoot = Nothing
Exit Sub
ErrorHandler:
MsgBox "An error occurred while setting ExAir Web Directory details." _
& " The error is: " & Hex(Err.Number) & " " & Err.Description, _
vbOKOnly + vbExclamation, "ExAir Config. Error (SetDir)"
End Sub
' Turn on debugging for the IISSamples VDir
Private Sub SetDebug()
On Error GoTo ErrorHandler
Dim oRoot As Object
Set oRoot = GetObject(APP_PATH)
oRoot.AppAllowDebugging = True
Set oRoot = Nothing
Exit Sub
ErrorHandler:
MsgBox "An error occurred while setting ExAir Web Debugging." _
& " The error is: " & Hex(Err.Number) & " " & Err.Description, _
vbOKOnly + vbExclamation, "ExAir Config. Error (SetDebug)"
End Sub
' Set the application type...
Private Sub SetApplication(strAppName As String, strFriendlyName As String, fInProc As Boolean)
On Error GoTo ErrorHandler
Dim oRoot As Object
Dim oDir As Object
Dim strWhere As String
strWhere = "getting Root"
Set oRoot = GetObject(APP_PATH)
strWhere = "getting app"
Set oDir = oRoot.GetObject("IISWebDirectory", strAppName)
SmallSleep
SmallSleep
strWhere = "creating app"
oDir.AppCreate fInProc ' Run the application in-process/out-of-proc
strWhere = "setting friendly name"
oDir.AppFriendlyName = strFriendlyName ' Name of application
strWhere = "setting exception handling"
oDir.AspExceptionCatchEnable = False ' We don't want ASP to catch exceptions (makes debugging easier!)
strWhere = "flushing info"
oDir.SetInfo
Set oDir = Nothing
Set oRoot = Nothing
Exit Sub
ErrorHandler:
MsgBox "An error occurred setting ExAir Web Applications details while " & strWhere & "." _
& " The error is: " & Hex(Err.Number) & " " & Err.Description, _
vbOKOnly + vbExclamation, "ExAir Config. Error (SetApplication - " & strAppName & ")"
End Sub
' Set some of the error pages (403.4, 403.7 & 404)
Private Sub SetErrorRedirects(strDir As String)
On Error GoTo ErrorHandler
Dim oRoot As Object
Dim oDir As Object
Set oRoot = GetObject(APP_PATH)
Set oDir = oRoot.GetObject("IIsWebDirectory", APP_NAME)
Dim strErrs(), strErr
Dim i As Integer, j As Integer
Dim strReplace(3) As String
strReplace(0) = "403,4,FILE," & strDir & "\Err403-4.htm"
strReplace(1) = "403,7,FILE," & strDir & "\Err403-7.htm"
strReplace(2) = "404,*,FILE," & strDir & "\Err404.htm"
' First get all the existing errors
' Then search for the error message in the collection
' If the error exists then replace it with the correct one from strReplace()
i = 0
Const SEARCH_SIZE As Integer = 5
For Each strErr In oDir.HttpErrors
ReDim Preserve strErrs(i)
strErrs(i) = strErr
For j = 0 To 2
If Left(strErr, SEARCH_SIZE) = Left(strReplace(j), SEARCH_SIZE) Then
strErrs(i) = strReplace(j)
Exit For
End If
Next j
i = i + 1
Next
oDir.HttpErrors = strErrs
oDir.SetInfo
Set oDir = Nothing
Set oRoot = Nothing
Exit Sub
ErrorHandler:
MsgBox "An error occurred while setting ExAir Error details." _
& " The error is: " & Hex(Err.Number) & " " & Err.Description, _
vbOKOnly + vbExclamation, "ExAir Config. Error (SetErrorRedirects)"
End Sub
' Set SSL requirements on two directories
' Set Authentication requirements on one
Private Sub SetSecurity(strPath As String)
On Error GoTo ErrorHandler
Dim oRoot As Object
Dim oDir As Object
Set oRoot = GetObject(APP_PATH)
Set oDir = oRoot.GetObject("IIsWebDirectory", APP_NAME)
' SSL Constants from IISCnfg.h
Const ACCESS_SSL As Integer = &H8
Const ACCESS_SSL_ALLOW_CERT = &H20
Const ACCESS_SSL_REQUIRE_CERT As Integer = &H40
' Authentication constants from IISCnfg.h
Const AUTH_NTLM As Integer = &H4
Dim oFFDir As Object
Set oFFDir = oDir.GetObject("IIsWebDirectory", "FreqFlyer")
oFFDir.AccessSSLFlags = 0 ' Use ACCESS_SSL for SSL channel
oFFDir.SetInfo
Set oFFDir = Nothing
Dim oBizDir As Object
Set oBizDir = oDir.GetObject("IIsWebDirectory", "BusinessPartners")
oBizDir.AccessSSLFlags = 0 ' Use ACCESS_SSL + ACCESS_SSL_REQUIRE_CERT + ACCESS_SSL_ALLOW_CERT for client authentication
oBizDir.SetInfo
Set oBizDir = Nothing
Dim oAdminDir As Object
Set oAdminDir = oDir.GetObject("IIsWebDirectory", "SiteAdmin")
oAdminDir.AuthFlags = AUTH_NTLM
oAdminDir.SetInfo
Set oAdminDir = Nothing
Dim oBenefitsDir As Object
Set oBenefitsDir = oDir.GetObject("IIsWebDirectory", "Benefits")
oBenefitsDir.AuthFlags = AUTH_NTLM
oBenefitsDir.SetInfo
Set oBenefitsDir = Nothing
Set oDir = Nothing
Set oRoot = Nothing
Exit Sub
ErrorHandler:
MsgBox "An error occurred while setting ExAir Security details." _
& " The error is: " & Hex(Err.Number) & " " & Err.Description, _
vbOKOnly + vbExclamation, "ExAir Config. Error (SetSecurity)"
End Sub
Private Sub SmallSleep()
Sleep 1000
End Sub