asp.net - 使用 Microsoft.Web.Administration 所需的权限

标签 asp.net security iis iis-7

我正在尝试使用 IIS 7 管理 API,但遇到安全问题。我的应用程序是在 .NET 4(集成管道)上运行的常规 ASP.NET 站点。该计算机是 Windows 7 x64(应用程序池是默认的,在 ApplicationPoolIdentity、x64 下运行)。该网站使用以下设置:

    <identity impersonate="true" />
    <authentication mode="Windows" />
    <customErrors mode="Off" />
    <authorization>
        <deny users="?" />
    </authorization>

我的站点尝试通过 IIS 管理 API(位于本地主机)读取其他站点的详细信息。我以本地管理员成员身份登录。在 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 权限 - 管理员具有完全访问权限。

最佳答案

UAC确实是万恶之源。启用后,模拟行为就会被破坏。这里的事情真的太复杂了:(

启用 UAC 并模拟当前安全上下文时,主体报告他不是本地管理员组的成员。但他是。它与交互式/非交互式 session 有关。

关于asp.net - 使用 Microsoft.Web.Administration 所需的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8963641/

相关文章:

.net - Windows DPAPI - 如何处理熵?

用于简单插入 MySQL 的 PHP PDO 安全程序

asp.net - SharePoint 2013,自定义 IHttpModule NullReferenceException

mysql - 我应该为我的 userID 使用 UUID 还是常规 auto_increment ?

asp.net - 什么是 Kestrel(与 IIS/Express)

security - 在 Azure VM 上设置身份服务器 3 证书

c# - 如何使 elmah.io 与 ASP.NET Core 和错误处理中间件良好配合?

c# - 如何确定哪些函数和 sql 过程导致主机服务器上的 cpu 使用率过高

c# - 是否可以在项目中使用同一个库的多个版本?

c# - UserPrincipal.IsMemberOf 返回 false