asp.net - 应用程序池标识或模拟

标签 asp.net iis asmx impersonation integrated-security

(曾问过类似问题的问题before,但问题和接受的答案均未提供我要查找的详细信息)

为了在专用域帐户下运行asmx Web服务,使用具有域帐户标识与模拟的应用程序池的使用场景和/或优缺点是什么?

我们有3个小型内部Web服务,它们在相对较低的负载下运行,并且我们希望将它们切换到在其自己的域帐户下运行(以与SQL Server等集成的安全性为目的)。我似乎可以选择为每个应用程序创建专用的应用程序池,或者为所有应用程序使用一个应用程序池,并在每个应用程序中使用模拟。

我了解应用程序池提供了工作进程隔离,并且在使用模拟时需要考虑性能,但是除其他因素外,其他因素还决定了正确的选择?

最佳答案

通常,您将为工作进程选择其他身份(或进行ASP.NET模拟),因为需要访问需要特定权限的本地/网络资源。明显的缺点是您的应用程序代码可能会在比其可能需要的权限更高的权限下运行,从而增加了抵抗恶意攻击的漏洞。

由于需要为每个请求切换用户上下文,因此ASP.NET模拟将产生更多开销。我建议使用单独的应用程序池方法-应用程序池方法的唯一缺点是每个过程都有一个进程,因此每个进程(从操作系统的角度来看)都会产生开销。如果您的应用程序较小,并且对内存的要求不高,那么这应该不是问题,

关于asp.net - 应用程序池标识或模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5826882/

相关文章:

c# - 在数据绑定(bind)期间跳过项目

c# - 在 MVC 应用程序中卡住使用 Microsoft.Web.WebPages.OAuth.OAuthWebSecurity

iis - 将超过 2Gb 的文件上传到 IIS 8/ASP.NET 4.5?

.net - 收到 500 内部服务器错误

asp.net - 如何在不使用 <table> 标签的情况下在 asp.net 中制作 colspan 和 rowspan 单元格,仅使用 <div> 标签

sql-server - 为什么我的 Web 应用程序不使用 AppPoolIdentity 登录到同一计算机上的 SQL Server?

iis - 在 ColdFusion 中使用 cgi.PATH_INFO 在 URL 中使用 unicode 的问题

c# - 从代理服务器后面添加 Web 服务引用

asp.net - 在 ASMX Web 服务中对同一 WebMethod 使用 POST 和 GET Ajax 调用

java - 如何压缩已经构建的jar文件?