Windows/NNTLM身份验证的应用程序缓存清单文件错误



浏览器是如何实现对应用程序缓存清单文件的请求的?它与请求其他文件的方式不同吗?

我之所以这么问,是因为我看到了在IIS 7中使用Windows/NNTLM身份验证时不会出现的行为。情况是,我有一个定义了清单文件的网站。使用匿名身份验证,一切都可以按预期工作——站点加载并可以脱机使用。

当我禁用匿名并启用Windows身份验证时,验证后网站将正常加载,但我会在控制台(Chrome或iPad2)中看到一个错误,表明无法提取清单文件。

在iPad上,错误是无法提取应用程序缓存文件。在Chrome中,具体的错误是"应用程序缓存错误事件:提取清单失败(401)"。我可以在两个实例的web服务器日志中看到401响应代码。

为什么这种行为看起来出乎意料,是因为对所有其他资源(CSS、JavaScript、图像)的请求都按预期工作。此外,我可以浏览到我的.appcache文件并加载它。

有人能解释一下发生了什么吗?

有没有其他人遇到过这种情况并找到了解决方案?

不确定这是否仍然相关,但我也遇到了这个问题。

当我的网站发出AJAX请求时,一旦页面加载,我就会被要求提供请求发生的凭据。一旦发生这种情况,运行applicationCache.update()将导致应用程序缓存正确更新。

因此,作为一种解决方案,也许可以尝试对某个东西发出AJAX请求,以便提示用户输入凭据,然后调用applicationCache.update()

我也遇到过这个问题。正如您所描述的,但我在Apache上使用的是基本的身份验证。我将尝试公开mainfest文件。

我知道这是一个老问题,但我也遇到了同样的问题。

我的设置是:
服务器-IIS8
身份验证-windows
启用匿名身份验证(这样做是为了无论身份验证如何都能获取我的动态清单,然后我必须用[Authorize]装饰所有其他控制器)

使用上述设置,应用程序将正确缓存。但是,当从缓存加载时,如果对清单进行更新,则由于用户未"登录",某些部分无法获取(如授权内容),从而导致整个更新甚至失败

我的解决方案是添加对授权资源的ajax调用,这样,当用户在线时,他们会被提示登录,这意味着下次更新缓存时,他们将再次获得授权。

相关内容

  • 没有找到相关文章

最新更新