我正在使用 WSFederationAuthenticationModule 进行身份验证。当用户未通过身份验证时,它会将他们相应地重定向到 ADFS Web 代理。ADFS cookie 的持续时间比应用会话长,因此有时它们会直接循环回应用程序。
几乎每次这是我想要的,用户尝试做某事,如果会话过期并且他们回来(在再次登录或发现 cookie 仍然很好之后),它会重定向他们,然后他们可以做他们想做的事。但是,如果他们单击“注销”,我希望他们被注销。但是模块正在拦截并将它们发送回来,然后一旦会话恢复,它们就必须再次单击“注销”。
注销是一个 MVC api 控制器操作。我不确定我是否想从安全性后面取出它,因为它还会触发应用程序的一些清理工作(我意识到这也是一个问题,因为如果他们从不点击注销,这些事情可能不会发生,但是是一个不同的问题)。
我觉得我必须在 WSFederationAuthenticationModule 和 ADFS 中遗漏一些东西......将注销操作设为匿名/公共操作感觉有些不对劲。在 WSFederationAuthenticationModule 的意图中必须对此进行一些考虑,但我似乎无法确定它。