問題タブ [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 - NSURLCredentialStorage は、アプリが UIApplicationLaunchOptionsLocationKey を使用してバックグラウンドで開始されたときに資格情報を返しません
私のアプリは、ユーザーがサインインまたはアップしたときにユーザーの資格情報を保存します。アプリが起動したら、didFinishLaunchingWithOptions資格情報が保存されているかどうかを確認します。これは、アプリ アイコンをタップするか、Xcode からアプリを起動してアプリを起動するときに正常に機能します。
ただし、アプリがバックグラウンドで強制終了され、場所の変更の更新によりシステムによって再起動された場合、返される資格情報defaultCredentialForProtectionSpaceは nil です。アプリを通常どおり再起動すると、資格情報が元に戻ります。
したがって、[launchOptions objectForKey:UIApplicationLaunchOptionsLocationKey]が真の場合、 によってNSURLCredential返されるNSURLCredentialStorageは nil です。false の場合、期待される資格情報を取得します。
ここにいくつかのコードがあります:
objective-c - NTLM Web サービス呼び出しを行うための適切な NSURLConnection/Credential パターンは何ですか?
NTLM認証を使用して、その存続期間中にさまざまな Web サービス呼び出しを行う必要がある "従来の" エンタープライズ iPad アプリケーションがあります。アプリケーションの起動時に、キーチェーンからユーザー名とパスワードを取得することを期待しています(キーチェーンにはユーザー名がないため、アプリは最初に使用したときに保存し、その後、パスワードが原因で機能しないときに更新されます更新)。
起動時に、アプリケーションの初期データを取得するために、さまざまな Web サービス呼び出しが必要です。ユーザーにはタブ付きのコントローラーが表示され、必要な機能を選択することができます。これにより、もちろん、より多くの Web サービス呼び出しが行われます。
この StackOverflow の回答 (非同期 NSURLConnection から呼び出し元のクラスに戻るにはどうすればよいですか? ) に示されているように、カスタム データ デリゲートを介してデータを受信する各クラスを処理するための戦術があると思います。ただし、機能を適切に使用する方法については、まだ少し混乱してい-(void)useCredential:(NSURLCredential *)credential forAuthenticationChallenge:(NSURLAuthenticationChallenge *)challengeます。
didReceiveAuthenticationChallenge には、次のようなコードがあります
永続的な永続性を設定しているので、機能でユーザー名とパスワードを常に渡す必要はないと思います。ユーザーの NTLM 資格情報を最初にセットアップする (および/または既に存在するかどうかを確認する) ために使用されるパターンはありますか?
また、二次的な質問/これの一部として。Objective-C アプリケーション全体でユーザー名/パスワードを渡すための適切でエレガントなアプローチは何ですか? 私は、グローバル変数またはシングルトン インスタンスのいずれかを考えています (これは、必要な変数がいくつかあるだけでは少しやり過ぎのようです)。
ios - backgroundSessionConfiguration を使用した NSURLSession は、ユーザー証明書では機能しません
バックグラウンド セッション構成を使用しているときに、NSURLSession に関する配線されたものを見つけました。実装であるサーバーとの接続時に、自己署名証明書を使用します。
defaultSessionConfiguration を使用すると完璧に動作しますが、セッション構成をバックグラウンド セッション構成に変更すると、このデリゲート メソッドがループで呼び出され、他のデリゲート メソッドは呼び出されず、この要求は完了しません。
コンソール出力は次のとおりです。
2014-08-11 15:36:01.204 OneBox[1736:a413] ServerTrust: https://demo.mycompany.com/api/v1/files/351/1/9cc69106455d11599a08ed978fbdbe1d/contents 2014-08-11 15:36: 01.232 OneBox[1736:1413] ClientCert: https://demo.mycompany.com/api/v1/files/351/1/9cc69106455d11599a08ed978fbdbe1d/contents 2014-08-11 15:36:02.068 OneBox[1736:8c03] ServerTrust: https://demo.mycompany.com/api/v1/files/351/1/9cc69106455d11599a08ed978fbdbe1d/contents 2014-08-11 15:36:02.076 OneBox[1736:1413] ClientCert: https://demo.mycompany.com /api/v1/files/351/1/9cc69106455d11599a08ed978fbdbe1d/contents 2014-08-11 15:36:12.728 OneBox[1736:1413] ServerTrust: https://demo.mycompany.com/api/v1/files/351/ 1/9cc69106455d11599a08ed978fbdbe1d/目次 2014-08-11 15:36:12.735 OneBox[1736:1413] ClientCert: https://demo.mycompany.com/api/v1/files/351/1/9cc69106455d11599a08ed978fbdbe1d/contents
ios - HTTP 基本認証が機能しない
HTTP 基本認証を使用するローカル REST サービスを呼び出そうとしています。
私の要求の結果として、私は以下を取得します:
検出: エラー - 許可
されていません 検出: 理由 - パスワードが必要です
これがリクエストを実行している私の機能です。
誰かヒントを教えてください。
ios - NSURLCredential が存在するかどうかを確認する
具体的な NSURLCredential がアプリに保存されているかどうかを確認する方法を探しています。NSURLCredentialStorage から取得しようとしていますが、それを行う方法を見つけていません。確認する方法があれば教えてください。
ありがとう。
ios - Objective-C クリア NSURLCredential - NSURLCredentialPersistenceForSession
私はNSURLCredentialsこの方法で使用しています:
そして今、次のようなログアウト方法で NSURLCredentials をクリアしようとしています:
どうすればこれを行うことができますか?NSURLCredentials をリセットする必要がありますか、それともクリアする必要がありますか?
アップデート
私はこの解決策を見つけました:
ここから:リクエスト中に NSURLCredentialPersistenceForSession を使用し、ログアウト時に資格情報をクリアしても、資格情報は保持されます
これが最善の方法ですか?保存されている資格情報は 1 つだけです。また、このコードでは、次の行に警告が表示されます。
ここに警告があります...この警告を削除するにはどうすればよいですか?
アップデート
わかりましたので、UserLogin、Login、および LogoutButtonPressed の 3 つのメソッドがあります。
UserLogin: 上記のように、NSURLCredential を使用して Windows 認証 URL に接続するために AFNetworking を使用しています。
このメソッドは、Login メソッドによって呼び出されています。
そして、LogoutButtonPressed でセッションをクリアしようとしています:
この例からこのコードを取得しました: http://www.springenwerk.com/2008/11/i-am-currently-building-iphone.html
今私が抱えている問題は、ログアウトボタンをトリガーしてから資格情報なしでログインメソッドをトリガーすると、まだログインできることです。ログアウトしてから2〜3分待って、資格情報なしでログインすると、ログインできません。なぜこのように振る舞うのか、信用情報がまだ保存されているようです。助けてください。
アップデート
LogoutButtonPressed 内のキャッシュ、Cookie、および資格情報をクリアしようとしました。
それでもうまくいきませんでした。