应用程序池标识或模拟

Per*_* P. 18 asp.net iis impersonation asmx integrated-security

(之前已经提出了类似问题的问题,但问题和接受的答案都没有提供我正在寻找的细节)

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

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

我理解应用程序池提供工作进程隔离,并且在使用模拟时需要考虑性能,但是除了那些除了正确的选项之外还有什么呢?

Vin*_*ayC 10

通常,您将为工作进程选择不同的标识(或执行ASP.NET模拟),因为需要访问需要特定权限的本地/网络资源.显而易见的缺点是,您的应用程序代码可能在比其可能需要的更多权限下运行,从而增加了针对恶意攻击的漏洞.

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