Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(iOS错误?)NSURLRequest缓存的授权传递的凭据不正确_Ios_Nsurlrequest_Offline Caching_Nsurlrequestcachepolicy - Fatal编程技术网

(iOS错误?)NSURLRequest缓存的授权传递的凭据不正确

(iOS错误?)NSURLRequest缓存的授权传递的凭据不正确,ios,nsurlrequest,offline-caching,nsurlrequestcachepolicy,Ios,Nsurlrequest,Offline Caching,Nsurlrequestcachepolicy,我想知道NSURLRequest与.returnCacheDataElseLoad/的缓存策略忽略了基本授权。因此,以下场景无法正常工作: 设置URL缓存策略以在向服务器请求之前使用本地缓存 使用良好的凭据提出新请求并收到成功响应 切换到脱机 使用以前的URL发出请求,但授权凭据不正确 观察第二个凭证不正确的请求是否成功 总的来说,如果应用程序中的脱机模式是通过iOS系统缓存实现的,则此错误允许任何人登录 有人熟悉这个问题吗?这至少在iOS 10上发生。我正在寻找如何以温和的方式修复它。这是

我想知道
NSURLRequest
.returnCacheDataElseLoad
/
的缓存策略忽略了基本授权。因此,以下场景无法正常工作:

  • 设置URL缓存策略以在向服务器请求之前使用本地缓存
  • 使用良好的凭据提出新请求并收到成功响应
  • 切换到脱机
  • 使用以前的URL发出请求,但授权凭据不正确
  • 观察第二个凭证不正确的请求是否成功
总的来说,如果应用程序中的脱机模式是通过iOS系统缓存实现的,则此错误允许任何人登录


有人熟悉这个问题吗?这至少在iOS 10上发生。我正在寻找如何以温和的方式修复它。

这是预期的行为。NSURLCache缓存仅基于URL本身,而不基于请求的任何其他方面。标题、柱体等未考虑在内,IIRC。(我可能忘记了一些不能忽略的部分,但无论如何,凭证都是。)

如果你想让你的应用程序支持多个用户帐户,在服务器端数据中有不同的视图,你需要为每个用户使用一个单独的缓存,并且你需要检查客户端的身份验证凭据。(顺便说一句,这本身可能是一个错误,因为这意味着客户机和服务器可能会在当前密码的概念上失去同步。)