<%@ Language=VBScript %> <% Option Explicit %> <% '------------------------------------------------------------------------- ' Web_ExecutePerm.asp: Set the Execute permissions to the web sites/service ' ' Copyright (c) Microsoft Corporation. All rights reserved. ' ' Date Description ' 25-10-2000 Created date ' 15-01-2001 Modified for new Framework '------------------------------------------------------------------------- %> <% '------------------------------------------------------------------------- ' Form Variables '------------------------------------------------------------------------- Dim F_Sites Dim F_selectActiveFormat Dim F_AllSites '------------------------------------------------------------------------- ' Global Variables '------------------------------------------------------------------------- Dim objService '------------------------------------------------------------------------- ' Start of localization content '------------------------------------------------------------------------- Dim L_EXECTASKTITLETEXT 'Dim L_WEBEXECROOTDIRHELP Dim L_APPLYTOALLIISTEXT Dim L_APPLYTOINHERITEDIISTEXT Dim L_EXECUTE_PERMISSIONS Dim L_NONE Dim L_SCRIPTS_ONLY Dim L_SCRIPTS_EXECUTABLES Dim L_FAIL_TO_SET_EXECPERMS 'Dim L_WEBEXECROOTREMDIRHELP Dim L_INFORMATION_ERRORMESSAGE L_EXECTASKTITLETEXT = GetLocString("GeneralSettings.dll", "4042002E", "") 'L_WEBEXECROOTDIRHELP = GetLocString("GeneralSettings.dll", "40420036", "") 'L_WEBEXECROOTREMDIRHELP = GetLocString("GeneralSettings.dll", "40420056", "") L_APPLYTOALLIISTEXT = GetLocString("GeneralSettings.dll", "40420035", "") L_APPLYTOINHERITEDIISTEXT = GetLocString("GeneralSettings.dll", "40420034", "") L_EXECUTE_PERMISSIONS = GetLocString("GeneralSettings.dll", "C0420033", "") L_NONE = GetLocString("GeneralSettings.dll", "40420032", "") L_SCRIPTS_ONLY = GetLocString("GeneralSettings.dll", "40420031", "") L_SCRIPTS_EXECUTABLES = GetLocString("GeneralSettings.dll", "40420030", "") L_FAIL_TO_SET_EXECPERMS = GetLocString("GeneralSettings.dll", "C042002F", "") L_INFORMATION_ERRORMESSAGE = GetLocString("GeneralSettings.dll", "C042000F", "") '------------------------------------------------------------------------- 'END of localization content '------------------------------------------------------------------------- 'Create property page Dim rc Dim page rc=SA_CreatePage(L_EXECTASKTITLETEXT,"",PT_PROPERTY,page) 'Serve the page If(rc=0) then SA_ShowPage(Page) End if '------------------------------------------------------------------------- 'Function: OnInitPage() 'Description: Called to signal first time processing for this page. ' Use this method to do first time initialization tasks 'Input Variables: PageIn,EventArg 'Output Variables: None 'Returns: True/False 'Global Variables: None '------------------------------------------------------------------------- Public Function OnInitPage(ByRef PageIn,ByRef EventArg) SetVariablesFromSystem() OnInitPage = True End Function '------------------------------------------------------------------------- 'Function: OnServePropertyPage() 'Description: Called when the page needs to be served.Use this ' method to serve content 'Input Variables: PageIn,EventArg 'Output Variables: None 'Returns: True/False 'Global Variables: None '------------------------------------------------------------------------- Public Function OnServePropertyPage(ByRef PageIn,Byref EventArg) Call ServeCommonJavaScript() Call ServePage() OnServePropertyPage = True End Function '------------------------------------------------------------------------- 'Function: OnPostBackPage() 'Description: Called to signal that the page has been posted-back. 'Input Variables: PageIn,EventArg 'Output Variables: None 'Returns: True/False 'Global Variables: None '------------------------------------------------------------------------- Public Function OnPostBackPage(ByRef PageIn ,ByRef EventArg) OnPostBackPage = True End Function '------------------------------------------------------------------------- 'Function: OnSubmitPage() 'Description: Called when the page has been submitted for processing. ' Use this method to process the submit request. 'Input Variables: PageIn,EventArg 'Output Variables: None 'Returns: True/False 'Global Variables: None '------------------------------------------------------------------------- Public Function OnSubmitPage(ByRef PageIn ,ByRef EventArg) OnSubmitPage = ServeVariablesFromForm() End Function '------------------------------------------------------------------------- 'Function: OnClosePage() 'Description: Called when the page is about closed.Use this method ' to perform clean-up processing 'Input Variables: PageIn,EventArg 'Output Variables: None 'Returns: True/False 'Global Variables: None '------------------------------------------------------------------------- Public Function OnClosePage(ByRef PageIn ,ByRef EventArg) OnClosePage = TRUE End Function '------------------------------------------------------------------------- 'Function: ServeCommonJavaScript 'Description: Serves in initialiging the values,setting the form ' data and validating the form values 'Input Variables: None 'Output Variables: None 'Returns: True/False 'Global Variables: None '------------------------------------------------------------------------- Function ServeCommonJavaScript() %> <% End Function '------------------------------------------------------------------------- 'Function: ServePage() 'Description: For displaying outputs HTML to the user 'Input Variables: None 'Output Variables: None 'Returns: None 'Global Variables: objService '------------------------------------------------------------------------- Function ServePage %> <% Dim objSetting Dim strObjPath strObjPath = GetIISWMIProviderClassName("IIs_WebServiceSetting") & ".Name='W3SVC'" set objSetting = objService.Get(strObjPath) if Err.number <> 0 then SetErrMsg L_INFORMATION_ERRORMESSAGE exit function end if if objSetting.AccessExecute = TRUE and objSetting.AccessScript = TRUE then F_selectActiveFormat = L_SCRIPTS_EXECUTABLES elseif objSetting.AccessExecute = false and objSetting.AccessScript = TRUE then F_selectActiveFormat = L_SCRIPTS_ONLY elseif objSetting.AccessExecute = false and objSetting.AccessScript = false then F_selectActiveFormat = L_NONE elseif isnull(objSetting.AccessExecute) and isnull(objSetting.AccessScript) then F_selectActiveFormat = L_NONE end if 'Release the object set objSetting = nothing %>
<%= L_EXECUTE_PERMISSIONS %>
 
<%=L_APPLYTOINHERITEDIISTEXT%>
<%=L_APPLYTOALLIISTEXT%>
<% End Function '------------------------------------------------------------------------- 'Function name: ServeVariablesFromForm() 'Description: Serves in getting the data from Client 'Input Variables: None 'Output Variables: None 'Returns: True/False 'Global Variables: None '------------------------------------------------------------------------- Function ServeVariablesFromForm 'setting the form variables Set objService = getWMIConnection(CONST_WMI_IIS_NAMESPACE) F_selectActiveFormat = Request.Form("selectActiveFormat") F_Sites = Request.Form("selectSites") F_AllSites = Request.Form("optAllSites") 'set the master settings If ExecutePerms()then ServeVariablesFromForm = true else ServeVariablesFromForm = false end if End Function '------------------------------------------------------------------------- 'Function name: SetVariablesFromSystem 'Description: Serves in Getting the data from Client 'Input Variables: None 'Output Variables: None 'Returns: None 'Global Variables: objService '------------------------------------------------------------------------- Function SetVariablesFromSystem 'Getting values from system Err.Clear on error Resume next Set objService = getWMIConnection(CONST_WMI_IIS_NAMESPACE) End Function '------------------------------------------------------------------------------------ 'Function name: ExecutePerms 'Description: Serves in settings the permissions to all and inherited sites 'Input Variables: None 'Output Variables: None 'Returns: boolean 'Global Variables: objService '------------------------------------------------------------------------------------ Function ExecutePerms() Err.Clear on error Resume next ExecutePerms = false 'All Sites if F_AllSites = "All" then if NOT SetExecPermsForAllSites(objService) then ServeFailurePage L_FAIL_TO_SET_EXECPERMS, sReturnURL end if end if 'Inherited Sites if F_AllSites = "inheritedSites" then if NOT SetExecPermsForNewSites(objService) then ServeFailurePage L_FAIL_TO_SET_EXECPERMS, sReturnURL end if end if ExecutePerms = true 'Release the object set objService = nothing end function '------------------------------------------------------------------------------------ 'Function name: SetExecPermsForNewSites 'Description: Serves in settings the permissions to only inherited sites 'Input Variables: None 'Output Variables: None 'Returns: boolean 'Global Variables: objService '------------------------------------------------------------------------------------ Function SetExecPermsForNewSites(objService) Err.Clear on error Resume next Dim objWeb Dim instWeb Dim objSites Dim strObjPath SetExecPermsForNewSites =false strObjPath = GetIISWMIProviderClassName("IIs_WebServiceSetting") & ".Name='W3SVC'" set objWeb = objService.Get(strObjPath) if Err.number <> 0 then SetErrMsg L_INFORMATION_ERRORMESSAGE exit function end if if not setExecPerms(objService,objWeb) then SA_TraceOut "Web_ExecutePerms", L_FAIL_TO_SET_EXECPERMS end if 'release the object set objWeb = nothing 'set the exec perms to the appliance site 'strObjPath = GetIISWMIProviderClassName("IIs_WebVirtualDirSetting") & ".Name='W3SVC/1/Root'" strObjPath = GetIISWMIProviderClassName("IIs_WebVirtualDirSetting") & ".Name='" & GetCurrentWebsiteName() & "/Root'" set objSites = objService.Get(strObjPath) if Err.number <> 0 then SetErrMsg L_INFORMATION_ERRORMESSAGE exit function end if objSites.AccessExecute = FALSE objSites.AccessScript = TRUE objSites.AccessRead = TRUE objSites.AccessSource = FALSE objSites.put_(WBEMFLAG) if Err.number <> 0 then SA_TraceOut "Web_ExecutePerms", L_FAIL_TO_SET_EXECPERMS exit function end if 'release the object set objSites = nothing SetExecPermsForNewSites =true End function '------------------------------------------------------------------------------------ 'Function name: SetExecPermsForAllSites 'Description: Serves in settings the permissions to all sites 'Input Variables: None 'Output Variables: None 'Returns: boolean 'Global Variables: objService '------------------------------------------------------------------------------------ Function SetExecPermsForAllSites(objService) Err.Clear on error Resume next Dim objAllSites Dim objSites Dim strObjPath Dim inst Dim arrProp(1) SetExecPermsForAllSites =false 'Set for Master site SetExecPermsForNewSites objService arrProp(0) = "AccessExecute" arrProp(1) = "AccessScript" Set objAllSites = GetNonInheritedIISSites(objService, GetIISWMIProviderClassName("IIs_WebVirtualDirSetting"),GetIISWMIProviderClassName("IIS_WebServiceSetting"), arrProp) if objAllSites.count = 0 then SetExecPermsForAllSites = true exit function end if for each inst in objAllSites if not setExecPerms(objService,inst) then SA_TraceOut "Web_ExecutePerms", L_FAIL_TO_SET_EXECPERMS end if next 'Release the object set objAllSites = nothing 'set the exec perms to the appliance site strObjPath = GetIISWMIProviderClassName("IIs_WebVirtualDirSetting") & ".Name='" & GetCurrentWebsiteName() & "/Root'" set objSites = objService.Get(strObjPath) if Err.number <> 0 then SetErrMsg L_INFORMATION_ERRORMESSAGE exit function end if objSites.AccessExecute = FALSE objSites.AccessScript = TRUE objSites.AccessRead = TRUE objSites.AccessSource = FALSE objSites.put_(WBEMFLAG) SetExecPermsForAllSites = true End function '------------------------------------------------------------------------------------ 'Function name: setExecPerms 'Description: Serves in settings the permissions 'Input Variables: objService, inst 'Output Variables: None 'Returns: boolean 'Global Variables: objService '------------------------------------------------------------------------------------ Function setExecPerms(objService, inst) setExecPerms = false if F_selectActiveFormat = L_SCRIPTS_EXECUTABLES then inst.AccessRead = TRUE inst.AccessSource = TRUE inst.AccessExecute = TRUE inst.AccessScript = TRUE elseif F_selectActiveFormat = L_SCRIPTS_ONLY then inst.AccessSource = FALSE inst.AccessRead = TRUE inst.AccessExecute = FALSE inst.AccessScript = TRUE elseif F_selectActiveFormat = L_NONE then inst.AccessSource = FALSE inst.AccessRead = FALSE inst.AccessExecute = FALSE inst.AccessScript = FALSE end if inst.put_(WBEMFLAG) if Err.number <> 0 then Response.End SA_TraceOut "Web_ExecutePerms", L_FAIL_TO_SET_EXECPERMS exit function end if setExecPerms = true End function %>