1

我目前正在MVC应用程序中生成一个WindowsIdentity对象,理想情况下我想缓存它,这样我就不会在每次请求时都碰到AD;问题是我经常遇到例外:“Safe Handle has closed”

我在某个地方读到这个错误,因为在请求结束后,IIS关闭了线程主体的句柄(在本例中,是我使用缓存的窗口标识实例化的窗口主体)。

直截了当地说,我应该缓存这个对象吗?缓存令牌是一个更好的主意吗?或者我应该放弃缓存其中任何一个的想法吗?

提前谢谢!

2
  • “生成WindowsIdentity”(通常由IIS完成)是什么意思,而不是应用程序代码。除非您使用的是Win32 LogonUser。 评论 2015年7月14日7:07
  • 是的,我正在使用Win32 LogonUser 评论 2015年7月16日21:56

1答案1

重置为默认值
0

如果您正在使用LogonUser创建Windows令牌,那么Windows内核中已经进行了一些优化和缓存。

我不会试图优化它,正如您已经注意到的,您应该将句柄管理留给操作系统。

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.