Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在确定IIS 5的IIS用户_Iis_Wix_Iis 5 - Fatal编程技术网

正在确定IIS 5的IIS用户

正在确定IIS 5的IIS用户,iis,wix,iis-5,Iis,Wix,Iis 5,我正在为一个web应用程序编写一个基于Wix的安装程序,并希望对它安装的文件夹设置权限,以便IIS可以访问它们 IIS 6和IIS 7分别使用IIS_WPG和IIS_USRS,IIS 5使用IUSR_计算机名。但是,如果用户更改了其计算机名,则使用当前计算机名设置权限将失败 有没有一种方法可以通过编程方式确定IIS 5使用的用户帐户,而不仅仅是假设它将是IUSR\U COMPUTERNAME?我是这样做的(不要假装提供最佳实践解决方案)-这是一个立即CA,它可以设置您以后可以使用的属性: [自定

我正在为一个web应用程序编写一个基于Wix的安装程序,并希望对它安装的文件夹设置权限,以便IIS可以访问它们

IIS 6和IIS 7分别使用
IIS_WPG
IIS_USRS
,IIS 5使用
IUSR_计算机名
。但是,如果用户更改了其计算机名,则使用当前计算机名设置权限将失败

有没有一种方法可以通过编程方式确定IIS 5使用的用户帐户,而不仅仅是假设它将是
IUSR\U COMPUTERNAME

我是这样做的(不要假装提供最佳实践解决方案)-这是一个立即CA,它可以设置您以后可以使用的属性:

[自定义操作]
公共静态操作结果集IUSRAccountNameAction(会话)
{
ActionResult ActionResult=ActionResult.Failure;
DirectoryEntry iisAdmin=new DirectoryEntry(“IIS://localhost/W3SVC”);
如果(iisAdmin!=null)
{
字符串iusrName=(字符串)iisAdmin.Properties[“匿名用户名”][0];
如果(!string.IsNullOrEmpty(iusrName))
{
会话[“IUSR_用户名”]=iusrName;
字符串iusrDomain=GetAccountDomain(iusrName,会话);
如果(!string.IsNullOrEmpty(iusrDomain))
{
会话[“IUSR_域”]=iusrDomain;
}
actionResult=actionResult.Success;
}
}
返回操作结果;
}
其中,GetAccountDomain方法的定义如下:

静态字符串GetAccountDomain(字符串accountName,会话)
{
SelectQuery query=newselectquery(“Win32_UserAccount”,string.Format(“Name='{0}',accountName”),new string[]{“Domain”});
ManagementObjectSearcher search=新的ManagementObjectSearcher(查询);
尝试
{
foreach(searcher.Get()中的ManagementObject帐户)
{
返回(字符串)帐户[“域”];
}
}
捕获(例外情况除外)
{
Log(“无法获取用户{0}:{1}”的域”,accountName,ex.Message);
}
返回null;
}

希望这有帮助。

我假设您总是将此应用程序安装到默认网站(IIS站点#1)中?非常感谢您的帮助,这看起来非常有用。我已经暂时转移到一个不同的项目几个星期,所以我不能检查它,但我会尽快做。再次感谢你,保罗