我有一个使用模拟的网站。当我的匿名用户设置为 IUSR 并将应用程序池标识设置为 NetworkService 时,某些页面不显示。我得到一个空白页,没有错误消息。
如果我将匿名用户设置为 ApplicationPoolIdentity 并将池标识设置为 localSystem ,它工作正常。
如果我将匿名用户设置为管理员用户,它工作正常。
我知道我遇到了安全问题,但我不知道我需要什么文件夹来设置安全策略以确保一切正常。
我将对网站文件夹的读/写访问权限授予 IUSR、IIS_IUSRS、网络服务和我的模拟用户组。
在我的允许下,有人知道会发生什么吗?
我也找到了这篇文章,但没有成功.. http://blogs.iis.net/webtopics/archive/2009/03/13/changes-to-application-pool-identities-in-iis-7-5-测试版.aspx
请参阅文章构建安全的 ASP.NET 应用程序:身份验证、授权和安全通信。
这将使您更好地了解 ASP.NET 应用程序在模拟时使用的身份。给予必要的许可,你很好。
高温高压
我发现了问题。
http://forums.asp.net/p/1459236/3386036.aspx
有问题
Microsoft 已确认这是 .Net Framework 2.0、3.0 和 3.5 中的一个错误。以下是我从他们那里收到的电子邮件中的一段话:
"
我们看到的问题确实是一个错误,以下是相同的解释。
它的初始化例程所做的一件事是将 Params 集合设置为 NULL。这就是导致 AV 的原因,当 FillInParamsCollection 方法尝试初始化 QueryString 对象之后的下一个对象时。”
解决方法 预初始化 QueryString 对象以避免该问题。只需访问 Request.QueryString()。我们不必对它做任何事情,只需访问它。
样本:
"
解决方案是直接在代码中使用,
Request["Value"]
而不是Request.Params["Value"]