【发布时间】:2021-02-01 21:08:26
【问题描述】:
编辑
让我们保持简单。
如何在 .Net Core 3.1 应用程序中使用 Windows 身份验证实现空闲超时?
为什么使用 Windows 身份验证:因为当使用 Windows (Active Directory) 进行身份验证时,我们无法注销。
Idle-Timeout:此功能表示如果屏幕空闲一段时间(可以在IIS中配置->Application Pools->Select Pool ->Advanced Settings->Idle Timeout :(默认:20 分钟))应用程序应该注销并再次要求登录。或者应该转到startup.cs中设置的404页
很高兴
- 使用 Windows 身份验证
- 尝试从 IIS 应用程序池实现空闲超时。
- 它应该(也)在部署到 IIS 后工作。
当前行为
应用程序在空闲超时后关闭。
和
尝试浏览(单击任何链接)它再次启动应用程序
尝试logout windows authentication,但没有成功
预期行为/输出
- Windows 身份验证的登录对话框弹出窗口
和/或
- idle-timeout 后应该达到 404
【问题讨论】:
-
空闲超时的 IIS 工作进程(应用程序池)设置与最终用户空闲或 Windows 身份验证(Kerberos 或 NTLM)完全无关。它只关心在应用程序处于非活动状态时减少服务器上的内存负载(w.r.t. 处理 HTTP 请求,无论最终用户在浏览器窗口中做什么或在工作进程中运行的任何后台任务)。
-
@Dai:我相信你是对的。因此它不起作用。您能否对功能提供更多指导
-
在页面或 service-worker 中使用 AJAX(好吧,
fetch)每隔几分钟发送一次请求,以保持用户的身份验证令牌有效 - 但我承认我不确定这是如何工作的使用 Kerberos/NTML。 -
使用 Windows 身份验证,只要服务器返回 401 响应,您的浏览器就会登录。但可以使用缓存的用户名/密码或当前本地用户令牌自动登录。我不相信有办法强制浏览器提示。
-
@JeremyLakeman:NP。我明白了,但肯定会有 404 的出路。这意味着在空闲超时到期后,它会达到 404 就是这样
标签: c# asp.net iis asp.net-core-3.1 application-pool