Asp.net core ASP.NET Core注销用户在x时间后或在特定时间

Asp.net core ASP.NET Core注销用户在x时间后或在特定时间,asp.net-core,hangfire,Asp.net Core,Hangfire,我曾尝试使用Hangfire创建一个定期作业,每天在3个特定小时运行,但后来发现它无法访问httpcontext以注销用户,因此我所做的是,hangfire任务在给定的时间调用一个存储过程,我创建了一个razor pages过滤器,它将根据任务更改的数据库中的布尔值注销用户 我想知道是否有一种方法可以做到这一点,而不必使用过滤器在每次http请求时都访问数据库。比如说, 我想在上午6:58或下午14:58或22:58自动注销用户 如何实现这一点?您只能在特定用户发出请求的上下文中注销用户。原因很

我曾尝试使用Hangfire创建一个定期作业,每天在3个特定小时运行,但后来发现它无法访问httpcontext以注销用户,因此我所做的是,hangfire任务在给定的时间调用一个存储过程,我创建了一个razor pages过滤器,它将根据任务更改的数据库中的布尔值注销用户

我想知道是否有一种方法可以做到这一点,而不必使用过滤器在每次http请求时都访问数据库。比如说,

我想在上午6:58或下午14:58或22:58自动注销用户


如何实现这一点?

您只能在特定用户发出请求的上下文中注销用户。原因很简单:身份验证通过客户端上的cookie持久化。只有通过与该客户机直接交互(客户机将cookie传输到服务器),您才能对其身份验证状态做些什么。没有登录名的全局存储,或者您可以一次修改所有登录名。因此,您必须使用过滤器或请求管道中的某个中间件来处理此问题。没有其他选择