如何使用具有 BASIC 身份验证的 Service Worker(NTLM、协商)

2024-04-15

我一直在尝试在 IIS 托管网站中使用服务工作线程来缓存该网站的一些静态内容。该站点是使用 Windows 身份验证的内部应用程序。我已经能够注册并运行服务工作线程,没有太多麻烦,但是一旦我打开缓存并开始向缓存添加文件,承诺就会因授权失败而失败。返回的HTTP结果是401 Unauthorized。这是前几个请求的通常响应,直到浏览器和服务器能够协商授权。

我很快就会发布一些代码来帮助解释。

EDIT

var staticCacheName = 'app-static-v1';
console.log("I AM ALIVE");
this.addEventListener('install', function (event) {
    console.log("AND I INSTALLED!!!!");
    var urlsToCache = [
        //...many js files to cache
        '/scripts/numeral.min.js?version=2.2.0',
        '/scripts/require.js',
        '/scripts/text.js?version=2.2.0',
        '/scripts/toastr.min.js?version=2.2.0',
    ];


    event.waitUntil(
        caches.open(staticCacheName).then(function (cache) {
            cache.addAll(urlsToCache);
        }).catch(function (error) {
            console.log(error);
        })
    );
});

由于缺乏代码,这只是一个猜测,但如果你正在做类似的事情:

caches.open('my-cache').then(cache => {
  return cache.add('page1.html'); // Or caches.addAll(['page1.html, page2.html']);
});

你正在利用隐式的Request 对象创建 https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#cache-addAll-method(参见第 6.4.4.4.1 节)当您将字符串传递给cache.add()/cache.addAll(). The Request创建的对象使用默认值凭证模式 https://fetch.spec.whatwg.org/#concept-request-credentials-mode,即'omit'.

你可以做的是显式构造一个Request包含您想要的凭据模式的对象,在您的情况下可能是'same-origin':

caches.open('my-cache').then(cache => {
  return cache.add(new Request('page1.html', {credentials: 'same-origin'}));
});

如果您有一堆要传递数组的 URLcache.addAll(), 你可以.map()它们对应的数组Requests:

var urls = ['page1.html', 'page2.html'];
caches.open('my-cache').then(cache => {
  return cache.addAll(urls.map(url => new Request(url, {credentials: 'same-origin'})));
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用具有 BASIC 身份验证的 Service Worker(NTLM、协商) 的相关文章

  • 尝试与服务工作者一起显示离线页面,但即使在离线状态下,我的请求也会收到 200 响应

    我正在尝试使用服务工作者来执行以下任务 缓存一组页面 如果请求 则从缓存中返回页面 如果该页面不在缓存中 则从服务器返回 如果缓存或服务器没有响应 则返回自定义离线页面 我有以下代码 this addEventListener instal
  • 如何在 Firefox 中清除 Service Worker 缓存?

    在 Chrome 中 可以从开发工具中清除 Service Worker 缓存 我们如何在 Firefox 中实现这一目标 到目前为止我已经尝试过 取消注册服务about serviceworkers 清空下面的缓存about prefer
  • 无后端的 PWA 通知

    我正在使用 Javascript PWA 制作一个待办事项应用程序 待办事项会有提醒 我想向用户发送通知以提醒他们 任务和提醒时间将存储在localStorage中 所以现在我想在没有任何后端的情况下发送通知 我尝试过一些教程 它们都需要后
  • Service Worker 的中止控制器

    我有一个 LeafletJS 地图 其中包含许多使用服务工作线程缓存的 protobuf 层 这非常有效并且节省了大量的加载时间 我最近添加了一个中止控制器 以在更改缩放级别时停止获取过程 以从浏览器待处理队列中删除当前缩放级别图块 这也节
  • 向请求添加新标头,同时保留正文

    我正在为我的公司建立一个内部使用的 PWA 我应该使用什么方法将不记名令牌附加到来自 dom 或 web worker 的所有请求 我在发布时使用的这种方法可以按预期工作form or json但我想要一种更干净或更友好的方法 因为我不相信
  • 未捕获(承诺中)DOMException:超出配额

    我正在尝试查看离线状态演示 https serviceworke rs offline status demo html从下面的链接 我得到 DOMException 超出配额 https serviceworke rs offline s
  • 如何在Python中计算NTLM哈希值?

    如何在 python 中计算密码的 NTLM 哈希值 有任何库或示例代码吗 我想要它用 python 编写 NTLM 强力工具 如 Cain 和 Abel 它的使用其实非常简单hashlib here http docs python or
  • 如何在调用任何 url 时提供 ntlm 身份验证?

    我有一个使用 ntlm Windows 集成身份验证 进行身份验证的托管 URL 我在 windows 上使用 java 1 8 URL url new URL someUrl HttpURLConnection con HttpURLCo
  • C# NTLM 哈希计算器

    我最近开始学习C 我尝试用这种语言生成 NTLM 哈希 但找不到为我执行此操作的函数 在 python 3 x 中我会导入hashlib并计算它hashlib new md4 Hello World encode utf 16le 我在 C
  • 在 Android 移动设备上使用 Chrome 调试 Service Worker

    我正在开发一个渐进式 Web 应用程序 为了确保它可以在移动设备上运行 特别是在 Android 版 Chrome 上 因为它有 90 的用户 我正在尝试在 Android 设备上测试 Service Worker 不幸的是 在安卓版 Ch
  • 在 .NET Core 中的 Web 请求中使用 NTLM 身份验证

    Update事实证明 我所需要做的就是升级到 NET Core 2 1 感谢大家的解决方案 我有一个 NET Core 2 0 控制台应用程序 需要向使用 Windows 身份验证 特别是 NTLM 的 API 发出 Web 请求 这是我公
  • PushManager订阅承诺从不履行也不拒绝

    我目前遇到一些 Chrome Chromium 版本的问题 其中PushManager subscribe来自 ServiceWorker 的承诺保持待处理状态 代码本身非常简单 return serviceWorkerRegistrati
  • 在 Facebook 浏览器中更新 Service Worker

    遇到了一个问题 我们的一些用户在我们网站的 Facebook 浏览器中存在有问题的 Service Worker 问题 当 Facebook 应用程序用户访问我们在 FB 上共享的页面时 他们会在 FB 浏览器上看到我们的 您离线页面 该错
  • 不透明的回复有哪些限制?

    不透明的回应 https fetch spec whatwg org concept filtered response opaque被定义为一部分获取API https fetch spec whatwg org 并表示向远程源发出请求的
  • 检测 Service Worker 离线状态的最佳实践

    我有一个服务工作者应该缓存一个offline html客户端没有网络连接时显示的页面 然而 有时它会认为导航器已离线 即使它并未离线 那是 navigator onLine false 这意味着用户可能会得到offline html而不是实
  • 硬刷新后注册 Service Worker

    每当硬刷新后重新加载具有 Service Worker 的 Web 应用程序时 Ctrl F5例如 对于 Chrome Service Worker 之后无法注册 根据文档W3C https w3c github io ServiceWor
  • Service Worker 对 CSS 的响应时间较慢

    我们在 sw toolbox 之上编写了 Service Worker 一旦静态资源被缓存 Service Worker 就会花费更长的时间 特别是下载 css 资源 30 100 毫秒 而对于 js 资源 时间几乎为 0 CSS 加载时间
  • Service Worker 与 Shared Worker

    Service Worker 和 Shared Worker 有什么区别 我什么时候应该使用 Service Worker 而不是 Shared Worker 反之亦然 Service Worker 具有共享 Worker 之外的附加功能
  • HTML5 网站在手机屏幕关闭时运行?

    基本上 我的问题与这个话题 https stackoverflow com questions 15465242 html5 mobile app running while phone screen is off但现在已经是 2018 年
  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序

随机推荐

  • Thymeleaf 中链接绝对 URL 时 th:href 和 href 之间的区别

    就在 Thymeleaf 的开头文档 http www thymeleaf org doc articles standardurlsyntax html关于标准url语法有两个例子 但没有说明它们之间的区别 a a href http w
  • 比特率 JWplayer

    我无法让 jwplayer 以不同的比特率工作 对于每个视频 我都会创建具有不同后缀且比特率较低的新输出文件 例如 输出1 高比特率 test original mp4 输出 2 中等比特率 test medium mp4 输出 2 低比特
  • 如何列出 Git 存储库中的目录以及每个目录条目的最新提交信息?

    我想列出 Git 存储库中的目录以及每个目录条目的最新提交信息 类似于 GitHub 如何显示目录或 viewvc 如何显示 SVN CVS 存储库中的目录 目前我这样做 获取目录条目git ls tree master并从输出中解析目录结
  • 如何在 JavaScript 的“if”语句中指定多个条件[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 这是我试图提及两个条件的方式如果这个或这个 但它不起作用 if Type 2 PageCount 0 Type 2 PageCou
  • 单击 RecyclerView 转到另一个包含 android 中数据的活动

    我正在使用 RecyclerVeiw 显示一些图像 单击它应该启动新活动 显示 RecyclerView 的 id 名称 我实现了代码 但它现在可以工作 但不可点击 下面是我的适配器 import android content Conte
  • 将 PEM 公钥读取到 iOS 中

    我有一个由 java 使用以下代码生成的 base64 公钥 RSAPublicKeySpec rsaKS new RSAPublicKeySpec modulus pubExponent RSAPublicKey rsaPubKey RS
  • java中通过POST方法发送Xml字符串

    我想通过 POST 方法将 xml 字符串传递到 URL 我尝试了下面的代码片段 但它没有返回任何内容 disableCertificateValidation String url https url https Properties s
  • 什么是“void(*old_sigint_handler)(int)”?

    这是一个语法问题 我遇到了这条线 void old sigint handler int 我不知道它在做什么 看起来像是没有变量名的三种类型的串联 我希望得到澄清 void old sigint handler int 这定义了old si
  • 线程模拟的多级使用

    我对一些很久以前编写的进行线程级模拟和进程生成的类遇到了一些问题 问题似乎是我对这些实用程序类的使用超出了其他人尝试使用它们所做的事情 第一个通过使用 OpenThreadToken 和 DuplicateToken 以及 Imperson
  • 从远程应用程序服务器连接到 Websphere Liberty jmsServer

    是否可以从远程应用程序服务器连接到部署在 Websphere Liberty 中的队列 我使用该产品的免费版本 Liberty 8 5 5 7 我在 server xml 中配置了连接工厂
  • 使用node.js和backbone.js进行模板渲染

    有没有人找到一个好的解决方案来开发可在服务器和客户端上使用的backbone js模板 这对于backbone js历史堆栈来说是非常理想的 因为用户可以在浏览器位置栏中共享和链接到真实的url 并且node js服务器可以在第一个页面视图
  • Android:旋转动画完成动画后恢复到真实状态?

    我将在 我的应用程序 中旋转图像 旋转一切正常 但是 当我旋转动画完成时 图像将返回到其先前的位置 我想要的是将图像保持在旋转状态 而不是让它回到真实状态 那么怎样才能让它成为可能呢 要旋转图像 我使用以下代码
  • 在应用程序中嵌入 C++ 编译器

    着色器不是很酷吗 您可以只输入一个纯字符串 只要它是有效的源 它就会编译 链接和执行 我想知道是否有一种方法可以将 GCC 嵌入到用户应用程序中 以便它 自给自足 例如具有编译与其自身兼容的本机二进制文件的内部功能 到目前为止 我一直在从应
  • 构建不使用 CRT 函数的 Visual C++ 应用程序仍然引用一些

    这是至少两个密切相关但又截然不同的一系列问题的一部分 我希望通过分别询问他们来做正确的事情 我正在尝试让我的 Visual C 2008 应用程序在没有 C 运行时库的情况下运行 它是一个 Win32 GUI 应用程序 没有 MFC 或其他
  • 为什么使用关键字或符号作为函数从地图中查找值有效?

    引用自Clojure 的乐趣 第 4 3 1 节 由于关键字是自我评估的并提供快速的相等性检查 因此它们几乎总是在映射键的上下文中使用 使用关键字作为映射键的一个同样重要的原因是它们可以用作函数 以映射作为参数来执行值查找 def popu
  • 理解 JS Promise

    我想更深入地了解 Promise 内部是如何工作的 因此我有一些示例代码 var p1 new Promise function resolve reject window setTimeout function resolve res c
  • 核心显卡圆形图像模糊

    我正在使用核心图形绘制圆形图像 并对其进行修改后的实现所以答案 https stackoverflow com a 18664917 1369331 这是我的来源 UIImage circularImageWithRadius CGFloa
  • Spring security 有 SimpleGrantedAuthority 但 hasRole 不起作用

    我有以下代码 private static Collection
  • 为什么 jspService() 不能被重写?

    为什么不能jspService 方法被重写 其中jspInit and jspDestroy 可以被覆盖吗 This 论坛帖子 http www geekinterview com question details 23904解释了为什么不
  • 如何使用具有 BASIC 身份验证的 Service Worker(NTLM、协商)

    我一直在尝试在 IIS 托管网站中使用服务工作线程来缓存该网站的一些静态内容 该站点是使用 Windows 身份验证的内部应用程序 我已经能够注册并运行服务工作线程 没有太多麻烦 但是一旦我打开缓存并开始向缓存添加文件 承诺就会因授权失败而