1

抱歉,我工作的代理机构的人在这里缺乏知识,他们继承了一个使用 ASP.net 在 Windows 服务器上构建的站点。

我们遇到了用户登录系统的问题。基本情况是当用户请求一个帐户时,管理员必须批准它。如果管理员拒绝用户应用程序,则用户仍然可以使用忘记密码选项登录。

我最初的反应是代码中的逻辑错误,但我们已经让一些 ASP 人员快速查看并无法重现该问题。因此,他们建议这可能是某种缓存问题。如果是这样,无论如何设置服务器以每小时左右重置它的缓存?或对此的任何其他建议也受到欢迎。抱歉完全没有代码示例,但我现在只能提供一个场景。

干杯。

4

2 回答 2

3

如果你不能重现它,那么没有问题;尽管我承认可能存在缓存问题。但是在不了解您的应用程序的更多信息的情况下,我只能建议使用 grep 您的源代码来获取对System.Web.Caching.Cache类的引用(如果不是通过 ,通常通过Page类直接访问HttpContext.Current)。

删除负责缓存的想法,我认为这只是忘记密码功能编码错误的情况。我猜是忘记密码功能会重置某种“帐户禁用”标志,这就是允许用户进入的原因。

于 2012-09-10T16:47:28.630 回答
1

ASP.Net 缓存类有一个用于缓存项的迭代器和一个删除项的方法。在 IIS 中托管长时间运行的进程很困难——因为“空闲”工作进程会被杀死——所以你不能只运行一个计时器。但是您可以使用IIS 自动启动功能,结合持久存储,每小时运行一次“核对缓存”方法。

话虽如此,我看不出这是解决问题的明智方法——我希望这里的计划只是为了帮助隔离真正的问题。

于 2012-09-10T16:50:28.473 回答