【问题标题】:Set Windows authentication timeout at runtime在运行时设置 Windows 身份验证超时
【发布时间】:2023-03-11 04:31:01
【问题描述】:

有没有办法为使用 Windows 身份验证的 Asp.Net 应用程序指定身份验证超时?

在我的场景中,登录到 Windows 的用户没有访问 Web 应用程序的权限,因此浏览器会提示他们输入一组不同的 Active Directory 凭据。假设他们没有勾选“记住我的凭据”复选框,我希望能够设置用户将保持身份验证的时间。

【问题讨论】:

    标签: asp.net timeout windows-authentication


    【解决方案1】:

    这在 ASP.NET 配置中是不可能的。

    因此,Windows 身份验证可能使用 Kerberos 或 NTLM。 AFAIK,NTLM 是基于连接的,连接生命周期决定身份验证范围。对于 kerberos,会发布一个有时间限制的令牌。令牌超时通常很小(比如几分钟),并且取决于设置。

    也许您应该解释设置 Windows 身份验证超时的具体需要(因为通常,超时旨在避免重放攻击和底层 Windows 身份验证,因此几乎不需要这样做应用程序级别的东西)。

    【讨论】:

    • 一位客户要求可配置 Windows 身份验证会话的超时时间。一种情况是他们使用通用帐户登录工作站,但随后要访问 ASP.Net 应用程序,用户将需要使用其特定的 Active Directory 帐户登录。经过一天的研究,我得出的结论是,唯一的选择是清除 IE 凭据缓存的 javascript hack,但这只会引入其他问题,因此我认为在这种情况下,他们应该使用 Forms 身份验证。
    • @sipwiz,通用帐户可以在服务器端进行身份验证(即服务器是否将它们识别为有效的 Windows 凭据)?如果不是,那么我相信 IE 会提示输入服务器上可接受的凭据。
    • 是的,通用帐户也是有效的 AD 帐户,这就是问题所在。
    • @sipwiz,如果经过身份验证的用户来自通用帐户,请尝试从服务器发送 HTTP 401 响应代码(前提是您有这样的机制来查找)。我相信如果提供的凭据被拒绝,浏览器会提示凭据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 2019-11-13
    相关资源
    最近更新 更多