Always Allowed URLs <alwaysAllowedUrls>
Overview
The <alwaysAllowedUrls> element contains a collection of <add> elements that specify URLs that request filtering will allow, which override the values in the <denyUrlSequences> collection.
Compatibility
| Version | Notes |
|---|---|
| IIS 7.5 | The <alwaysAllowedUrls> element of the <requestFiltering> element ships as a feature of IIS 7.5. |
| IIS 7.0 | The <alwaysAllowedUrls> element of the <requestFiltering> element was introduced as an update for IIS 7.0 that is available through Microsoft Knowledge Base Article 957508. |
| IIS 6.0 | The <alwaysAllowedUrls> element is roughly analogous to the [AlwaysAllowedUrls] section that was added to URLScan 3.0. |
Setup
The default installation of IIS 7 includes the Request Filtering role service. If the Request Filtering role service is uninstalled, you can reinstall it using the following steps.
Windows Server 2008 or Windows Server 2008 R2
- On the taskbar, click Start, point to Administrative Tools, and then click Server Manager.
- In the Server Manager hierarchy pane, expand Roles, and then click Web Server (IIS).
- In the Web Server (IIS) pane, scroll to the Role Services section, and then click Add Role Services.
- On the Select Role Services page of the Add Role Services Wizard, select Request Filtering, and then click Next.
- On the Confirm Installation Selections page, click Install.
- On the Results page, click Close.
Windows Vista or Windows 7
- On the taskbar, click Start, and then click Control Panel.
- In Control Panel, click Programs and Features, and then click Turn Windows Features on or off.
- Expand Internet Information Services, then World Wide Web Services, and then Security.
- Select Request Filtering, and then click OK.

How To
How to always allow a URL
- Open Internet Information Services (IIS) Manager:
- If you are using Windows Server 2008 or Windows Server 2008 R2:
- On the taskbar, click Start, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.
- If you are using Windows Vista or Windows 7:
- On the taskbar, click Start, and then click Control Panel.
- Double-click Administrative Tools, and then double-click Internet Information Services (IIS) Manager.
- If you are using Windows Server 2008 or Windows Server 2008 R2:
- In the Connections pane, go to the connection, site, application, or directory for which you want to modify your request filtering settings.
- In the Home pane, double-click Request Filtering.
- In the Request Filtering pane, click the URL tab, then click Allow URL... in the Actions pane.
- In the Allow URL dialog box, enter the URL that you wish to allow, and then click OK.
Configuration
The <alwaysAllowedUrls> element of the <requestFiltering> element is configured at the site, application, or directory level.
Attributes
None.
Child Elements
| Element | Description |
|---|---|
add |
Optional element. Adds a URL to the collection of URLs that request filtering will always allow. |
clear |
Optional element. Clears the collection of URLs that request filtering will always allow. |
remove |
Optional element. Removes a URL from the collection of URLs that request filtering will always allow. |
Configuration Sample
The following sample illustrates a combination of a <denyUrlSequences> element and an <alwaysAllowedUrls> element that will deny any URLs if they contain either of two specific character sequences, but will always allow a specific URL that contains both of those two specific character sequences in a particular order.
<system.webServer>
<security>
<requestFiltering>
<denyUrlSequences>
<add sequence="bad" />
<add sequence="sequence" />
</denyUrlSequences>
<alwaysAllowedUrls>
<add url="/bad_sequence.txt" />
</alwaysAllowedUrls>
</requestFiltering>
</security>
</system.webServer>Sample Code
The following examples demonstrate how to add a URL that will always be allowed on the Default Web Site.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /+"alwaysAllowedUrls.[url='/_allowed_url.aspx']"
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample { private static void Main() { using (ServerManager serverManager = new ServerManager()) { Configuration config = serverManager.GetWebConfiguration("Default Web Site"); ConfigurationSection requestFilteringSection = config.GetSection("system.webServer/security/requestFiltering"); ConfigurationElementCollection alwaysAllowedUrlsCollection = requestFilteringSection.GetCollection("alwaysAllowedUrls"); ConfigurationElement addElement = alwaysAllowedUrlsCollection.CreateElement("add"); addElement["url"] = @"/allowed_url.aspx"; alwaysAllowedUrlsCollection.Add(addElement); serverManager.CommitChanges(); } } }
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample Sub Main() Dim serverManager As ServerManager = New ServerManager Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site") Dim requestFilteringSection As ConfigurationSection = config.GetSection("system.webServer/security/requestFiltering") Dim alwaysAllowedUrlsCollection As ConfigurationElementCollection = requestFilteringSection.GetCollection("alwaysAllowedUrls") Dim addElement As ConfigurationElement = alwaysAllowedUrlsCollection.CreateElement("add") addElement("url") = "/allowed_url.aspx" alwaysAllowedUrlsCollection.Add(addElement) serverManager.CommitChanges() End Sub End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";
var requestFilteringSection = adminManager.GetAdminSection("system.webServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var alwaysAllowedUrlsCollection = requestFilteringSection.ChildElements.Item("alwaysAllowedUrls").Collection;
var addElement = alwaysAllowedUrlsCollection.CreateNewElement("add");
addElement.Properties.Item("url").Value = "/allowed_url.aspx";
alwaysAllowedUrlsCollection.AddElement(addElement);
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"
Set requestFilteringSection = adminManager.GetAdminSection("system.webServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set alwaysAllowedUrlsCollection = requestFilteringSection.ChildElements.Item("alwaysAllowedUrls").Collection
Set addElement = alwaysAllowedUrlsCollection.CreateNewElement("add")
addElement.Properties.Item("url").Value = "/allowed_url.aspx"
alwaysAllowedUrlsCollection.AddElement(addElement)
adminManager.CommitChanges()