- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 ServerManager 类(来自 Microsoft.Web.Administration)在运行 IIS 7 的服务器上创建应用程序。我想配置应用程序是基于应用程序使用匿名身份验证还是 Windows 身份验证,以便我可以' 只需要求 IT 更改根站点上的设置。应用程序的内容属于第三方,因此我不能更改应用程序内的 web.config 文件。
Application 类没有公开任何有用的属性,但也许我可以使用 ServerManager 的 GetApplicationHostConfiguration 方法完成一些事情?
最佳答案
听起来您希望更改站点的 Internet 信息系统配置;如果这是正确的,这样的事情应该有效:
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();
}
以上代码将允许您创建授权规则,允许组中的特定用户访问特定站点。在本例中,网站是 Contoso。
然后这将禁用站点的匿名身份验证;然后为站点启用基本和 Windows 身份验证:
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();
}
或者如果您愿意,您可以简单地添加一个 IIS 管理器用户帐户;您可以将其设置为某些权限来操作和管理其他应用程序。
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"] = @"P@ssw0rd";
addElement["enabled"] = true;
credentialsCollection.Add(addElement);
serverManager.CommitChanges();
}
Internet 信息系统具有很大的灵 active ;它非常强大。通过那里引用的文档也非常深入。这些示例非常不适合您的特定用途,或者至少提供一定程度的理解以使其执行您想要的操作。
希望有所帮助,这些示例来自 here :
关于c# - 使用 ServerManager 类配置 IIS 身份验证设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9926683/
我正在 MVC 4 中构建一个控制应用程序,并且遇到了一个非常烦人的问题。当我在本地调试项目时,它工作正常。但是,当我将项目部署到测试服务器 (Windows Server 2008 R2) 时,出现
我正在尝试使用 Servermanager 读取站点的状态。基本上这就是我所拥有的, var serverManager = new ServerManager(siteInstance.Server
如何获取磁盘上站点的物理路径? using (ServerManager serverManager = new ServerManager()) { var sites = serverManage
我正在尝试使用 ServerManager 创建应用程序池类(class)。这是我的代码: using (ServerManager serverManager = new ServerManager
我正在尝试使用 ServerManager.OpenRemote(来自 Microsoft.Web.Administration),但无法找到有关如何为其提供与当前用户不同的凭据的文档。我尝试了 Si
我需要帮助使用 Microsoft.Web.Administration.ServerManager 类为网站设置端口。 首先我得到了网站: Site site = this._serverManag
我使用以下代码通过 Microsoft.Web.Administration.ServerManager 获取元数据: var manager = new ServerManager(); var s
我对 ServerManager 类(来自 Microsoft.Web.Administration 程序集)有一个小问题,我希望你们中的一些人能帮助我。 基本上我需要在站点内创建一个新应用程序(使用
我正在使用 ServerManager (Microsoft.Web.Administration.dll) 在 IIS 7 上的网站内创建一个应用程序。 我需要在这个应用程序中创建一个应用程序或将一
我想使用 Microsoft.Web.Administration 命名空间中的类,将自定义 CGI-Exe 的处理程序映射(脚本映射)添加到 Internet 信息服务器。(简化的)代码是: var
当我尝试使用以下代码从远程服务器获取 IIS 应用程序池列表时 List appPools; using (ServerManager serverManager = ServerManager.Op
我有一个名为 Web 的 WebRole,并且我正在 Azure 计算模拟器中运行此代码: public override bool OnStart() { using
我正在使用 PowerShell ServerManager cmdlet,但无法找到安装命令的退出代码的完整列表。 $feature = Add-WindowsFeature NET-Framewo
我有以下方法在一个漂亮的网页上显示 IIS worker 请求,但是每次刷新页面时它都会增加目标机器上 dllhost(COM 代理)的内存消耗,直到没有更多可用内存。我是 C# 的初学者,所以我希望
我正在尝试使用 ServerManager.OpenRemote("[IP Address]") 连接到 IIS7+。我正在从 HyperV 主机连接到它的客户端虚拟机。我不断收到以下错误:'Syst
我正在使用 ServerManager 类(来自 Microsoft.Web.Administration)在运行 IIS 7 的服务器上创建应用程序。我想配置应用程序是基于应用程序使用匿名身份验证还
我正在使用可以运行 powershell 片段的 32 位应用程序。我需要加载 ServerManager模块,我通常会这样做: Import-Module ServerManager 但我得到这个错
你好, 我有一个 powershell 部署脚本,它将文件从 svn 下载到一个目录中,然后更新 IIS 设置以将站点指向新文件夹。它一直运行良好,直到对服务器进行了一些更新。现在,当我尝试运行脚本时
我需要更新一个远程 Web.config 文件,我目前可以通过 Microsoft.Web.Administration 程序集内的 ServerManager 对象访问应用程序,就像这样: Serv
尝试在当前机器上获取应用程序池时遇到一个奇怪的问题。似乎在安装 IISExpress 时,除了完整的 IIS 之外,Microsoft 代码还想检查 IISExpress。 IISExpress 对每
我是一名优秀的程序员,十分优秀!