2

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

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

查看 我想以编程方式添加这些用户的图像。

谢谢你,贾斯万斯

4

2 回答 2

2

我的建议是不要使用 ServerManager 来执行此操作,尽管可以通过配置 API 进行,但您不会尊重 IIS 用户支持的提供程序模型。例如,某人可能有一个“SQL Server”数据库提供程序,然后配置中的用户真的无法工作。

要正确执行此操作,您可以使用 Microsoft.Web.Management.dll(在 windows\system32\inetsrv 中)文件夹中的 API,称为 ManagementAuthentication,它有两种方法:CreateUser 和 Grant。

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

但是调用它们很简单:

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

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

于 2015-11-03T22:32:14.640 回答
0

我最终做了这几件事。根据 Carlos 的建议,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 网站上的更多详细信息。

于 2017-10-13T23:35:43.353 回答