【问题标题】:How to Allow IIS Manager User to a IIS Site using ServerManager Programatically如何以编程方式使用 ServerManager 允许 IIS 管理器用户访问 IIS 站点
【发布时间】:2016-02-03 22:37:57
【问题描述】:

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

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

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

谢谢你, 贾斯旺斯

【问题讨论】:

    标签: c# iis servermanager iis-manager


    【解决方案1】:

    我的建议是不要使用 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-through-powershell.aspx

    但是调用它们很简单:

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

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

    【讨论】:

    • 我对这个建议有点意见。第一行确实创建了一个用户 MyUser。但是,第二行似乎不足以让用户登录。当我在 IIS 管理器中打开 FTP 站点时(运行您建议的代码后),我可以在我的 FTP 站点的“IIS 管理器权限”中找到 MyUser,但我不能在“FTP 授权规则”中找到它。因此 FTP 登录失败并显示消息“530-用户无法登录,主目录不可访问。”。一旦我将用户添加到“FTP 授权规则”,它就会开始工作。无论有没有 FTP 用户隔离,都会发生这种情况。帮忙?
    • 哦,这救了我的培根:[C:\Windows\system32\inetsrv\appcmd.exe set config "MyFtpSite" -section:system.ftpServer/security/authorization /+"[accessType=' Allow',users='MyUser',permissions='Read, Write']" /commit:apphost] 没有它我无法登录。
    【解决方案2】:

    我最终做了这几件事。 Powershell 中的第一部分,根据 Carlos 的建议:

    [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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      • 2021-07-09
      • 1970-01-01
      相关资源
      最近更新 更多