我有几个网站使用HTTPModule(包装在dll中)来验证用户并将身份验证对象存储在应用程序缓存中大约10个小时。然后,我在用户计算机上设置了一个包含缓存密钥的cookie。
我现在正在寻找一种方法,允许管理员为任何给定用户清除所有网站的特定缓存对象(有效地将其记录下来),导致他们下次访问时自动重新登录(通过Windows身份验证)这些网站。
我计划在一个管理网站上设置重置登录的工具 - 但出于明显的安全原因,我无法更改其他网站的应用程序缓存。
有没有办法将信号传递给那些使用身份验证模块的网站,以便他们可以清除自己的应用缓存?
注意:我已经阅读了memcached,但如果可能的话,我想避免使用非标准ASP.NET的解决方案。
答案 0 :(得分:1)
以下是两个想法:
编辑:我只是想到了一个更好的解决方案:
答案 1 :(得分:0)
我选择将代码存储到现有的HTTPModule上。
我检查自定义用户代理字符串,如果存在,我会根据查询字符串清除相关的缓存条目,并在成功时返回自定义HTTP标头。
唯一的额外开销是检查我可以使用的每个请求的用户代理。
通过此设置,我现在可以使用WebRequest
对象(从我的中心站点注入我的自定义用户代理字符串),使用该模块向所有站点发送消息。