我有几个网站使用HTTPModule(包装在DLL中)来认证用户并将认证对象存储在应用程序缓存中约10小时。然后我在用户机器上设置一个包含缓存键的cookie。ASP.Net应用程序上下文数据共享
我现在正在寻找一种方法来允许管理员清除任何给定用户的所有网站的特定缓存对象(实际登出),导致他们下次访问时自动重新登录(通过Windows身份验证)任何网站。
我打算建立一个单一管理网站,提供重设登录的功能 - 但由于明显的安全原因,我无法更改其他网站的应用程序缓存。
有没有任何方式将信号传递给那些使用认证模块的站点,以便他们可以清除自己的应用程序缓存?
注意:我已经阅读了memcached,但我想避免一个不是'标准ASP.NET'的解决方案,如果可能的话。
我倾向于通用处理程序的一种形式,通过分析HttpApplication.BeginRequest中的请求并运行缓存清除代码(如果url符合某些条件)。它确实意味着维护每个网站的URL的中央列表,以便尽可能地调用它。 –
的确如此,但是您将需要使用各种解决方案的列表,您希望在这些网站之间进行直接交流。我只是想到另一个,可能更好的方法,但将编辑到我的答案。 – magnattic
我已经有一个中央站点来管理它,但是它将已验证用户的权限传递回请求项目,以便它们可以被缓存。如果我将这些数据缓存在中央项目中,它将会破坏目标,因为消费项目将不断需要查询中央身份验证站点以获取用户权限。我想在一个“Cache22”的情况下,哈哈。 –