我正在尝试使用IIS7管理API,但遇到了一个安全问题。我的应用程序是在.NET 4(集成管道)上运行的常规ASP.NET站点。机器是Windows7 x64 (应用程序池是默认的,在ApplicationPoolIdentity,x64下运行)。该站点使用以下设置:
<identity impersonate="true" />
<authentication mode="Windows" />
<customErrors mode="Off" />
<authorization>
<deny users="?" />
</authorization>我的站点尝试通过IIS管理API (在localhost)读取其他站点的详细信息。我以本地管理员的身份登录。在IE中,我试图打开我的页面,但得到的结果是:
Site 'mysite' at 'myhost' is unknown.System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
at Microsoft.Web.Administration.Interop.IAppHostProperty.get_Value()
at Microsoft.Web.Administration.ConfigurationElement.GetPropertyValue(IAppHostProperty property)
at Microsoft.Web.Administration.Site.get_State() 我不明白为什么。我非常确定代码是在我账户的模拟上下文中运行的(可以看到这是调试器在监视System.Threading.Thread.CurrentPrincipal)。我做错了什么?
附注:
UAC开启了,但我相信这并不重要。已检查C:\Windows\system32\inetsrv\config文件夹上的NTFS权限-管理员具有完全访问权限。
发布于 2012-02-07 06:38:55
UAC确实是万恶之源。模拟行为在启用时被破坏。这里有些东西确实太复杂了:
启用UAC并模拟当前安全上下文时,主体报告他不是本地管理员组的成员。但他确实是。它与交互式/非交互式会话有关。
发布于 2012-01-23 03:14:24
尝试将temp directory设置为web.config中的具有完全权限的文件夹。
<compilation tempDirectory="c:\temp" ... ></compilation>https://stackoverflow.com/questions/8963641
复制相似问题