通常,你会为工作进程选择不同的标识(或进行ASP.NET模拟),因为需要访问需要特定权限的本地/网络资源。显而易见的缺点是,你的应用程序代码可能会在比它所需的权限更高的权限下运行,从而增加遭受恶意攻击的风险。
ASP.NET模拟将具有更多开销,因为需要为每个请求切换用户上下文。我建议采用单独的应用程序池方法-应用程序池方法的唯一缺点在于,您必须为每个应用程序池创建进程,因此会存在一些开销(从操作系统的角度来看)。如果你的应用程序规模较小而且没有很强的内存需求,那么这不应该是一个问题。
应用程序池的优点:
你不必成为.Net程序员就能理解发生了什么。
安全方面落在基础设施范畴内,而不是程序员的权限范围内。
通过IIS轻松更改,但需进行合适的安全检查以确保在设置应用程序池时输入的用户名正确。例如:它不会让您输入错误的用户名。
模拟用户的优点:
模拟用户的缺点:
我不确定还有什么别的要考虑的。
我的直觉是为每个网站使用不同的应用程序池,但这是你的决定。
https://www.attosol.com/sample-aspx-page-to-show-security-details-in-asp-net/
完成后,您将“准确地”看到模拟如何更改身份。