如何使用ServerManager以编程方式允许IIS管理器用户访问IIS站点

时间:2015-11-03 16:54:48

标签: c# iis servermanager iis-manager

我想允许现有IIS管理器用户使用C#访问IIS站点或网站。

任何人都可以共享示例代码。这真的很有帮助。

Look at the image我想以编程方式添加这些用户。

谢谢你, Jaswanth

2 个答案:

答案 0 :(得分:2)

我建议不要使用ServerManager,尽管可能通过配置API,但您不会尊重IIS用户支持的提供者模型。例如,某人可能拥有“SQL Server”数据库提供程序,然后配置中的用户确实无效。

为了正确地执行此操作,您在Microsoft.Web.Management.dll(在windows \ system32 \ inetsrv)文件夹中使用了一个名为ManagementAuthentication的API,该文件夹有两种方法:CreateUser和Grant。

几年前我写了一篇关于如何从PowerShell中调用它们的博客文章: http://blogs.msdn.com/b/carlosag/archive/2009/10/23/adding-iis-manager-users-and-permissions-through-powershell.aspx

但是打电话给他们就像:

Microsoft.Web.Management.Server.ManagementAuthentication.CreateUser("MyUser", "ThePassword");
Microsoft.Web.Management.Server.ManagementAuthorization.Grant("MyUser", "Default Web Site", false); 

这将正确使用配置的任何提供程序,如果使用默认配置提供程序,那么它将保存在Administration.config中,但如果它在其他地方它会做正确的事情(例如将数据插入到数据库或其他地方)。

答案 1 :(得分:0)

我最后做了几件事。根据卡洛斯的建议,来自powershell的第一部分:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Management") 
[Microsoft.Web.Management.Server.ManagementAuthentication]::CreateUser("MyUser", "abc123")
[Microsoft.Web.Management.Server.ManagementAuthorization]::Grant("MyUser", "MyFtpSite", $FALSE)

然后从命令行:

appcmd.exe set config "MyFtpSite" -section:system.ftpServer/security/authorization /+"[accessType='Allow',users='MyUser',permissions='Read, Write']" /commit:apphost

所有这些组合允许我添加新的IIS管理员用户,并赋予其对我的FTP站点的权限。

Microsoft site的更多详情。