问题标签 [nsurlcredential]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 在我重新启动应用程序之前,iOS 中基于证书的客户端身份验证不起作用
当我从服务器下载 p12 文件并将其设置为 NSURLCredential 时,如下所示:
//提取IdentityAndTrust方法
{
}
当我这样做时,它不起作用。但是,如果我关闭并打开应用程序,它的工作正常。有人知道如何解决这个问题吗?
谢谢!
ios - AFNetworking 3.0 迁移
现在我正在使用AFNetworking 2.0
,我想将它迁移到AFNetworking 3.0
. 我已将文件添加到项目中,它显示了许多错误。我检查了迁移指南。我的疑问是如何NSURLCredential
在AFNetworking 3.0.4
. 现在我正在使用,
但AFNetworking 3
不支持AFHTTPRequestOperation
和
AFHTTPRequestOperationManager
。请帮我。
ios - 观看操作系统:NSUrlSession 凭据缓存
我想从 iPhone 和 Apple Watch 实现“注销和新登录”功能。
注销后,我可以从 iPhone 中清除凭据(使用 NSURLConnection 因为它的旧代码),但不能从 Apple Watch 中清除(使用 NSURLSession)。
我在 Apple Watch 中使用 NSURLSession,因为它是 Apple 推荐的新功能。
我尝试使用 ephemeralSessionConfiguration 从 Apple Watch 连接服务器(Watch OS 2.0、Swift 2.0、iOS 9.0 >> )。我调用了:'invalidateAndCancel' 和
resetWithCompletionHandler
API 来清除凭据并且行为没有变化。只有一次它会触发身份验证质询。之后,它总是使用我第一次提供的凭据。所以我无法使用新的登录用户凭据。
我试图获取凭据存储和缓存以清除凭据。但是共享凭证存储和缓存是空的。
问题
我的方法有什么问题吗?还是 Watch OS 2.0 的错误?
ios - NSURLSession 的身份验证挑战:NSURLCredentialStorage vs Keychain
我正在尝试学习如何使用NSURLSession
. 我以前从未做过与安全网络相关的任何事情。我一直在阅读Apple 的Authentication Challenges and TLS Chain ValidationNSURLSession Programming Guide
部分,并在其中提到了该对象NSURLCredentialStorage
,但在其参考资料中,我没有进一步描述我为什么要使用它。
NSURLCredentialStorage
和 和有什么不一样Keychain
?安全处理用户名和密码的最佳方法是什么?我一直在寻找一个身份验证挑战的例子,无论NSURLSession
是成功还是失败,有人能告诉我在哪里可以找到一个吗?NSURLCredentialStorage
Keychain
提前致谢
ios - iOS 如何从 NSURLCredentialStorage 中正确检索凭据?
我遇到了无法从中检索凭据的问题NSURLCredentialStorage
,即使我在保存后立即尝试此操作。
凭证格式正确并被服务器接受,它被设置为永久的。我有调试代码来打印并确认凭证具有身份和证书。但是,当我尝试从凭证存储中检索它时,调试会将所有值打印为 Null,而凭证本身不为 null。
如何从 NSURLCredentialStorage 正确检索凭据?
这是保存前后的日志
ios - 使用 Alamofire 进行基本身份验证
使用 Basic Auth 进行身份验证时遇到问题。我正在使用符合URLRequestConvertible
协议的标准枚举来构造我的请求。问题是,当我像这样在枚举中手动设置授权标头时:
我总是收到 401 未经授权的响应。但是authenticate
,如果我像这样使用回调设置密码:
它正确地进行了身份验证。我希望能够在符合的枚举中手动设置它,URLRequestConvertible
而不是在authenticate
.
我知道它正在使用NSURLCredential
引擎盖下的身份验证挑战,但我希望能够手动设置它。
这是我的URLRequestConvertible
实现:
ios - 调用 didReceiveChallenge 方法时应用程序冻结
我正在尝试使用自签名证书连接到 API 进行测试。
这是我的 didReceiveChallenge() 方法:
第一个在登录方法中调用,如下所示:
每当调用 didReceiveChallenge 时,应用程序都会完全冻结。有没有解决的办法?我试过使用 GCD 来调用登录方法,但没有任何乐趣。有没有办法解决?
ios - NSURLCredentialStorage setDefaultCredential:不适用于 [NSURLSession sharedSession]
我很难过:我的应用程序需要连接到使用 HTTPS 的自签名证书并需要客户端身份验证的服务器。更糟糕的是,我实际上需要 iOS 媒体播放器来连接到该服务器,所以我已经完全按照 Apple 的说明进行操作:
但它只是行不通。所以我尝试手动向服务器发出请求:
我得到的只是这个错误:
现在,如果我设置自己的 NSURLSession 并使用 URLSession:didReceiveChallenge:completionHandler: 回调:
接着:
请注意我是如何使用 [session.configuration.URLCredentialStorage defaultCredentialForProtectionSpace:challenge.protectionSpace] 的,这是我认为 NSURLSession 的默认实现在收到身份验证质询时所做的。
这适用于这个特定的连接!这证明了凭证是可以的,并且在默认的 NSURLCredentialStorage 中正确注册为默认凭证。
但是围绕 didReceiveChallenge: 回调的任何解决方案都不好,因为我无法控制媒体播放器正在使用哪个 NSURLSession。
我已经尝试过CustomHTTPProtocol hack,但这也不起作用。
有什么建议吗?我已经浏览了所有类似的帖子,我找不到解决方案。这篇文章非常接近,但接受的答案对我来说没有意义,并且明显与 Apple 的文档相矛盾。
ios - 当 iOS 设备被锁定时,如何启用对 NSURLCredentials 的访问?
我正在使用 Swagger 生成的 Swift 客户端,用于NSURLCredentials
向服务器进行身份验证。我正在使用持久性类型.Permanent
我的应用程序在后台与服务器通信并且工作正常,除非我锁定手机(我在日志中看到 401 错误)。我相信NSURLCredential
手机锁定时无法访问钥匙串。我遇到了一些关于使用kSecAttrAccessibleAfterFirstUnlock
. 我一直无法弄清楚如何使用NSURLCredential
. 有谁知道这是否以及如何配置?
ios - 如何更改 NSURLSession 的凭据
我有以下问题:我正在向服务器发出请求,该服务器使用 HTTP 基本身份验证并给了我
- 如果我不发送身份验证,则为 401
- 如果我发送无效身份验证,则为 401
- 如果我发送有效的身份验证但该用户禁止该资源,则为 403。
收到 401 时,我的 NSURLSession 非常友好,可以通过
然后我可以在其中修改发送到服务器的凭据。
但是,当收到 403 时,我遇到了问题。从那里我无法让会话使用除用于获取 403 之外的任何其他凭据。在 403 上,不询问代表(这没关系,它不是 401),所以我如何控制哪些凭据是将来为那个保护空间发送?即使手动清空共享的 NSURLCredentialStorage 和/或直接在那里设置正确的凭据也无济于事:
在此调用之后,正确的凭据是唯一在 NSURLCredentialStorage 中列出的凭据 - 但是下一次对服务器的调用仍将包含旧凭据,这将不可避免地导致另一个 403。
即使使用其reset(completionHandler: @escaping () -> Void)
方法重置会话也无济于事。
TLDR ; 如何更改 NSURLSession 在给定保护域成功使用它们后继续使用的凭据?