我想允许现有IIS管理器用户访问IIS站点或使用C#的网站。如何使用ServerManager以编程方式允许IIS管理器用户访问IIS站点
任何人都可以共享示例代码。这将是非常有帮助的。
Look at the image我想以编程方式添加这些用户。
谢谢你, Jaswanth
我想允许现有IIS管理器用户访问IIS站点或使用C#的网站。如何使用ServerManager以编程方式允许IIS管理器用户访问IIS站点
任何人都可以共享示例代码。这将是非常有帮助的。
Look at the image我想以编程方式添加这些用户。
谢谢你, Jaswanth
我的建议是不要做,使用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中,但如果它位于其他位置,它将执行正确的操作(例如将数据插入数据库或其他位置)。
我最终做了这几件事。在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。
我对这个建议有点问题。第一行确实创建了一个MyUser用户。但是第二行似乎不足以让用户登录。当我在IIS管理器中打开FTP站点(在运行您的建议代码之后)时,我可以在我的FTP站点的“IIS管理器权限”中找到MyUser,但是我无法在“FTP授权规则”中找到它。因此,FTP登录失败并显示消息“530-用户无法登录,主目录无法访问”。只要我将用户添加到“FTP授权规则”中,它就开始工作。这发生在有和没有FTP用户隔离的情况下。帮帮我? – DenNukem
哦,这保存了我的熏肉:[C:\ Windows \ system32 \ inetsrv \ appcmd.exe设置配置“MyFtpSite” - 部分:system.ftpServer /安全/授权/ +“[accessType ='允许',users ='MyUser ',permissions ='读取,写入']“/ commit:apphost]如果没有它,我将无法登录。 – DenNukem