Es klingt wie Ihre Hoffnung, die Internet-Informationssystemkonfiguration für die Site zu ändern; wenn das richtig so etwas wie dies sollte funktionieren:
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetWebConfiguration("Contoso");
ConfigurationSection authorizationSection = config.GetSection("system.webServer/security/authorization");
ConfigurationElementCollection authorizationCollection = authorizationSection.GetCollection();
ConfigurationElement addElement = authorizationCollection.CreateElement("add");
addElement["accessType"] = @"Allow";
addElement["roles"] = @"administrators";
authorizationCollection.Add(addElement);
serverManager.CommitChanges();
}
Der obige Code ermöglicht es Ihnen, eine Berechtigungsregel zu erstellen, die einen bestimmten Benutzer in einer Gruppe eine bestimmte Website zugreifen kann. In diesem Fall ist die Site Contoso.
Dann deaktiviert dies die anonyme Authentifizierung für die Website; dann Grund & Windows-Authentifizierung für die Website aktiviert:
using(ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
anonymousAuthenticationSection["enabled"] = false;
ConfigurationSection basicAuthenticationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso");
basicAuthenticationSection["enabled"] = true;
ConfigurationSection windowsAuthenticationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso");
windowsAuthenticationSection["enabled"] = true;
serverManager.CommitChanges();
}
Oder Sie können einfach ein IIS-Manager-Benutzerkonto hinzufügen, wenn Sie mögen; Sie können bestimmte Berechtigungen festlegen, um diese anderen Anwendungen zu bearbeiten und zu verwalten.
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetAdministrationConfiguration();
ConfigurationSection authenticationSection = config.GetSection("system.webServer/management/authentication");
ConfigurationElementCollection credentialsCollection = authenticationSection.GetCollection("credentials");
ConfigurationElement addElement = credentialsCollection.CreateElement("add");
addElement["name"] = @"ContosoUser";
addElement["password"] = @"[email protected]";
addElement["enabled"] = true;
credentialsCollection.Add(addElement);
serverManager.CommitChanges();
}
Es gibt eine Menge Flexibilität im Internet Information System; Es ist ziemlich mächtig. Die Dokumentation durch diese Referenz ist auch ziemlich ausführlich. Die Beispiele sind ziemlich unpassend, um an Ihre spezielle Verwendung angepasst zu werden oder zumindest ein Verständnisniveau zu bieten, damit es das macht, was Sie wollen.
Hoffentlich diese Hilfe, diese Beispiele kamen von here: