I notice you're using System.DirectoryServices
to configure these features on IIS7 (according to your tags).
In IIS7 you can configure both of these settings using the Microsoft.Web.Administration
library instead:
Setting the authentication type (replaces AuthFlags
):
IIS 7 Configuration: Security Authentication <authentication>
To configure Forms Authentication:
using Microsoft.Web.Administration;
...
long iisNumber = 1234;
using(ServerManager serverManager = new ServerManager())
{
Site site = serverManager.Sites.Where(s => s.Id == iisNumber).Single();
Configuration config = serverManager.GetWebConfiguration(site.Name);
ConfigurationSection authenticationSection =
config.GetSection("system.web/authentication");
authenticationSection.SetAttributeValue("mode", "Forms");
ConfigurationSection authorizationSection =
config.GetSection("system.web/authorization");
ConfigurationElementCollection addOrDenyCollection =
authorizationSection.GetCollection();
ConfigurationElement allowElement = addOrDenyCollection.CreateElement("allow");
allowElement["users"] = "?";
addOrDenyCollection.Add(allowElement);
serverManager.CommitChanges();
}
The code above will create a new web.config
file in the root of the website or modify an existing one.
To use Microsoft.Web.Administration
, add a reference to C:\Windows\System32\InetSrv\Microsoft.Web.Administration.dll
.