对于相同的代码,web和桌面应用程序会产生不同的结果
本文关键字:结果 应用程序 桌面 代码 于相同 web | 更新日期: 2023-09-27 17:53:31
我有以下一段代码:
在同一台机器上运行web和桌面应用程序时返回不同的结果。
这是我的代码。请指导我该怎么做?? var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
return (from ManagementObject wmiHD in searcher.Get()
select wmiHD["SerialNumber"] == null ? "VM HD" : wmiHD["SerialNumber"].ToString()).ToList();
下面是相同代码的无linq版本
var hdCollection = new List<string>();
var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
foreach (ManagementObject wmiHD in searcher.Get())
{
// get the hardware serial no.
if (wmiHD["SerialNumber"] == null)
{
hdCollection.Add("VM HD");
}
else
{
hdCollection.Add(wmiHD["SerialNumber"].ToString());
}
}
return hdCollection;
这可能是由两个原因引起的:
-
web服务器使用不同的用户帐户运行(可能是NetworkService)http://www.bluevisionsoftware.com/WebSite/TipsAndTricksDetails.aspx?Name=AspNetAccount
-
web服务器在没有Fulltrust权限的情况下运行代码(可能是中等信任)http://discussion.accuwebhosting.com/iis-web-server/993-how-grant-full-trust-mode-domain-asp-net-2-0-iis-6-0-a.html
这两种操作都可能危及安全性,但是第一个操作通过设置acl提供了更多的选择来解决这个问题。