首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >IIS7.5中的ASP.NET和加载用户配置文件选项中的安全异常

IIS7.5中的ASP.NET和加载用户配置文件选项中的安全异常
EN

Stack Overflow用户
提问于 2010-06-18 17:33:58
回答 3查看 22.1K关注 0票数 19

在部署我们的ASP.NET 2.0应用程序的新版本后,它开始引发安全异常:“System.Security.SecurityException:请求类型'System.Web.AspNetHostingPermission,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089‘的权限失败。”

经过在internet上的快速搜索,我们能够通过在IIS 7.5应用程序池中将“Load User Profile”设置为True来解决此问题。这个解决方案在stackoverflow上也被多次提及:

然而,我们无法找到原因,为什么它必须是真的。我们检查了新版本中的所有更改(很高兴只有几个),但没有发现任何可疑的东西(不能像一些文章建议的那样访问注册表或临时数据等)。当IIS7.5中的ASP.NET应用程序需要将“Load User Profile”选项设置为True时,谁能给我们一些提示?

详细信息:

  • 应用程序池:.NET 2.0;托管管道模式-经典;身份-自定义域帐户IIS6.0中的
  • (W2K3):新旧版本的应用程序工作正常IIS7.5中的
  • (W2K8-R2):旧版本的应用程序工作正常;新版本的应用程序引发安全异常-它在将“加载用户配置文件”设置为True

后开始工作

谢谢!

编辑:我们终于找到了这个问题的原因!我们的管理员使用不同的技术将新版本的应用程序从登台环境复制到生产环境。他使用web服务器作为中介。在将压缩的发布构建工件加载到生产环境并解压缩文件后,它们仍然被标记为“被阻止”,因为它们来自不同的计算机。另请参见https://superuser.com/questions/38476/this-file-came-from-another-computer-how-can-i-unblock-all-the-files-in-a。然后,ASP.NET在逻辑上以部分信任而不是完全信任的方式执行这些二进制文件,这实际上导致了我们的应用程序中提到的安全异常。

将"Load User Profile“设置为True修复了安全异常的副作用。如果"Load User Profile“设置为False,则我们的应用程序(不是我们的代码,可能是某个互联网BCL或外部程序集)正在尝试查询有关目录"C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\Windows\Temporary .NET文件的基本信息,而应用程序池的身份是不允许的:

具有完全信任的

  • :对此查询操作的访问被拒绝不会引发任何exception
  • With部分信任:对此查询操作的访问被拒绝会引发安全异常

如果"Load User Profile“设置为True,则每次应用程序池启动时,都会在用户目录中创建临时配置文件。然后,我们的应用程序尝试查询有关此配置文件的"Temporary Internet Files“目录的信息,允许应用程序池的身份访问该目录。因此,即使使用部分信任,也不会引发异常。

非常好的故障排除会话!:)

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3068548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档