问题标签 [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.

0 投票
0 回答
405 浏览

ios - 如何使用具有后台会话配置的 NSURLSession 进行客户端证书身份验证?

我的应用程序后端需要客户端证书身份验证。如果我使用默认配置配置 NSURLSession,则会在我提供有效客户端证书的地方调用 didReceiveChallenge 委托。它成功地完成了任务。但是在后台会话配置的情况下,didReceiveChallenge 被调用并且我提供了相同的证书但它不起作用。

0 投票
2 回答
5121 浏览

ios - 在 UIWebView 中保存用户名/密码以供将来自动登录

我正在为学校网站制作一个简单的 iOS 应用程序。该应用程序内置 UIWebView 来加载网站的登录页面。用户第一次加载页面时,他/她需要像以前一样登录。我希望应用程序可以保存用户的用户名/密码。因此,下一次用户使用该应用程序时,它会自动填充并提交表单以自动登录。

我发现 stackoverflow.com 的几个链接非常有帮助。例如,

[1] UIWebView 是否可以保存和自动填充以前输入的表单值(例如,用户名和密码)?

[2] UIWebView 中自动填充用户名和密码

我试图为我的程序做同样的事情。自动填充部分适用于硬编码的测试用户名/密码。但是,我在从 UIWebView 保存凭据时遇到了问题。"stringByEvaluatingJavaScriptFromString: @" 方法不会从 HTML 中检索元素。

我的代码如下所示。我使用 viewDidLoad 加载网站,并希望使用 webView 保存凭据。

当我单击 webView 中的提交按钮时,没有从网站检索到字符串。

请帮我解决问题。非常感谢!

0 投票
1 回答
297 浏览

ios - URLSession didReceiveChallenge 太慢了

我的应用程序的执行通常在 didReceiveChallenge 停止 2-3 秒(甚至 5 秒)。大约十分之一的时间需要永远。整个事情都有效,但我能做些什么来加快它呢?

这是我的代码:

0 投票
2 回答
1463 浏览

authentication - 如何在 urlsession 中验证代理?

嗨,我正在尝试向我的应用程序添加带有凭据的代理,但每当我尝试时,我都会收到以下(在 Xcode 中)控制台警告:

还收到以下说明的警报

当我取消弹出窗口时,它正在调用以下方法

我在Xcode 控制台中调试挑战并得到以下 debugDescription:

我的问题是如何处理代理身份验证?

我的代码:

从下面的字典中,我可以访问代理但无法验证代理。

我尝试了以下几种方法但失败了:

其他方式:

其他方式:

无法进行身份验证。

请建议我如何在 swift 3 中验证代理?

0 投票
1 回答
546 浏览

ios - URLSession 凭据缓存允许使用不正确的凭据进行身份验证

我正在尝试在我的 iOS 应用程序中与我公司的 API 进行通信。我正在使用标准的 URLSession。

API 将负载平衡并自动重定向到不同的服务器,因此我实现了处理重定向的 URLSessionDelegate 和 URLSessionTaskDelegate 方法。

当我最初登录时,我将从http://our.api.com重定向到http://our1.api.com或其他具有不同服务器编号的 API 版本。我第一次使用http://our1.api.com进行身份验证时,它将尊重传入的授权标头和质询的 URLCredential。但是,如果我尝试使用已知的错误凭据再次对同一个 API 进行身份验证,则会使用旧的 URLCredential,并且当我无法进入 API 时,我可以进入。

有没有办法强制 URLSession从不使用缓存的 URLCredential,或者清除缓存的 URLCredentials?

创建 URLSession

调用 API

URLSessionDelegate 和 URLSessionTaskDelegate