作为从事过此类项目的人,您可能知道这个网站:
在这篇文章中,Mike Volodarsky 创建了一篇关于如何为 IIS7 创建自己的安全身份验证扩展的非常好的帖子。
我拿了这个并根据自己的需要进行了修改。我正在获取基本身份验证凭据并调用外部 Web 服务来对来自不同 Active Directory 域的用户进行身份验证。
到目前为止,这基本上可以正常工作。
调用 Web 服务需要一些时间,每个请求、站点、资源(图像、样式表、javascript 文件等)都会导致 IIS7 调用模块并再次进行身份验证。
我不知道 IIS7 如何处理这个模块,所以我决定创建一个基于 sql-table 的安全令牌,其生命周期为 10 分钟。所以现在我的代码检查此令牌是否可用并授予访问权限,如果没有,则调用 Web 服务再次进行身份验证。
我开发了所有东西,而且效果很好。在生产中,我遇到了更严重的超时,并发现我的 sql 连接是问题所在。连接池过载。我用一个糟糕的解决方法解决了这个问题,将池大小设置为非常大的数字。
现在这是我的问题/问题:
有谁知道这个模块是否会以任何方式留在内存中,以便我可以将令牌存储在内存中 - 应用程序池范围?这个想法是在应用程序运行时将令牌存储在内存中。但是我找不到任何信息来帮助我了解模块在 IIS7 中是如何处理的,以及我的想法是否可以解决问题。