問題タブ [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 投票する
2 に答える
4082 参照

iphone - didReceiveAuthenticationChallenge が EXC_BAD_ACCESS を引き起こす

Web サイトが認証を必要としない場合、私のコードは正常に動作します。必要な場合は、「資格情報が作成されました」を出力した直後に EXC_BAD_ACCESS でエラーが発生します。私は何もリリースしていません。このコードはドキュメントから直接コピーされています。何が問題なのですか?

0 投票する
2 に答える
11833 参照

iphone - iPhone: NSURLCredential を使用して HTTPS Web サービスへの基本認証を取得する方法

基本認証を使用して https Web サービス (RESTful) を呼び出そうとしています。URL自体に資格情報を入力しても問題なく動作しますが、例外などでパスワードが表示されないように、リクエストに追加したいと思います。

次のコードを使用しています。

しかし、それは機能しません。didReceiveAuthenticationChallengeデリゲート メソッドが呼び出され、そこに資格情報を追加できますが、理想的には、要求と共に送信します。

何か案は?

0 投票する
1 に答える
3850 参照

iphone - NSURLConnection、NSURLRequest、信頼されていない証明書、およびユーザー認証

みんな、おはよう、

認証が必要なリモート Web サービスからいくつかの GET を実行するアプリケーションを作成しようとしています。私の主な問題は、これらのリモート サーバーの大部分 (および多数のサーバー) が有効な証明書を持っていないことです。無効な証明書を受け入れるコードと、正しい uname & pass (以下) でチャレンジに応答するコードがあります。私が抱えている問題は、2つを一緒にプレイすることです。NSURLCredential両方のチャレンジを送信する方法、またはコールバックを正しくチェーンする方法を見つけることができないようです。それらをチェーンしようとすると、2回NSURLRequest呼び出すことができませんdidReceiveAuthenticationChallenge

どんな考えでも大歓迎です!

認証用コード...

0 投票する
1 に答える
6451 参照

iphone - NSURLCredentialStorage とクライアント証明書認証

MPMoviewPlayerController のドキュメントで見たものから、NSURLCredentialStorage は NSURLConnection 認証チャレンジの代替として設定できます (これは、URL からリソースをロードするが、NSURLConnection を抽象化し、認証を処理するためのデリゲートを提供しない高レベルのクラスに役立ちます)課題)。これは、ブラウザーに証明書をインストールし、特定のアドレスが要求したときに必要な証明書を自動的に選択することに似ているようです。

これをテストするために、独自の認証局、サーバー証明書、およびクライアント証明書 (.p12 ファイル) をセットアップしました。https サーバーをセットアップし、別のマシンからブラウザーを使用してクライアント証明書を正常にテストしました。

次に、証明書を iPhone アプリに統合する必要があります。

p12 ファイルをバンドルし、アプリケーションの起動時にこれを行います。

extractIdentityAndTrust 関数は、'Certificate, Key, and Trust Services Tasks for iOS' ドキュメント ページから単純にコピーしたものです (証明書のパスワードを自分のものに置き換えただけです)。

私が知る限り、身元と証明書は適切にロードされています。NSURLCredential オブジェクトをコンソールに出力すると、次のような結果が得られます<NSURLCredential: 0x140ea0>: (null)(これが良い兆候かどうかはわかりません)。

ただし、 setDefaultCredential を実行すると、多くの情報を提供せずにアプリがクラッシュします。

スタックトレースは次のようになります。

資格情報に何かが設定されていないように見えます。

これを解決する方法についてのアイデアはありますか?

編集:

テストのために、Mail からファイルを開いて iPhone に証明書をインストールしました。Safari 経由で https 経由でページにアクセスできますが、アプリ経由ではアクセスできません。

機能する唯一のことは、保護されたドメイン上の任意のリソースへの NSURLConnection を開き、didReceiveAuthenticationChallenge に応答することです (上記のコードとまったく同じように資格情報をロードし、NSURLAuthenticationChallenge の送信者に直接送信するだけです)。私は本当により高いレベルのクラスを使用する必要があります。

0 投票する
1 に答える
3068 参照

objective-c - NSURLCredential と NSURLConnection

NSURLCredentialPersistenceForSession を使用している NSURLConnection で NSURLCredential を設定したら、資格情報を設定解除する方法を探していましたが、有効な解決策が見つかりませんでした。NSURLCredentialStorage から NSURLCredential を削除すると、ストレージからのみ削除され、NSURLConnection キャッシュからは削除されません。キャッシュをオフにしてみましたが、まだ保持されています。大きなデータをアップロードしたくないので、NSURLCredentialPersistenceForSessionである必要があります一度。大きなデータを送信する前に、いくつかのプロパティをチェックして認証する方法がありますが、ログアウトしたり、認証を再要求したりすることはできません。WebDav クライアントを書いているのは、私の立場を理解していただくためです。資格情報を設定解除する必要があるのは、誰かが WebDav サーバーに複数のアカウントを持っていて、別のアカウントにログインしたい場合のためです。Cookie を調べて、そこに何かが設定されているかどうかを確認しようとしましたが、設定されていません。セッション専用であることはわかっています。つまり、アプリケーションを終了して再起動すると、他のユーザーとしてログインできます。しかし、それは一部の人々を混乱させるかもしれません。独自の認証システムを作成することを考えましたが、どれくらいの時間がかかるかわかりません。t。セッション専用であることはわかっています。つまり、アプリケーションを終了して再起動すると、他のユーザーとしてログインできます。しかし、それは一部の人々を混乱させるかもしれません。独自の認証システムを作成することを考えましたが、どれくらいの時間がかかるかわかりません。t。セッション専用であることはわかっています。つまり、アプリケーションを終了して再起動すると、他のユーザーとしてログインできます。しかし、それは一部の人々を混乱させるかもしれません。独自の認証システムを作成することを考えましたが、どれくらいの時間がかかるかわかりません。

上記のメッセージが長すぎる場合は申し訳ありませんが、誰かが有効な回答で私を助けようとすることができるように、すべてを詳細に説明していることを確認しています.

助けてくれてありがとう、
Gecko さん。

更新: コード例。

更新:資格情報を削除して試したコード。

0 投票する
2 に答える
1825 参照

ios - NSURLCredentialは永続的ですか?

次の行を使用したために発生したiPhoneシミュレーターに問題があります。

問題は、クレデンシャルがでチャレンジに与えられたときに作成されました

したがって、アプリケーションを実行すると、クレデンシャルを次のように変更したとしても、認証の課題に再び遭遇することはありません。これは非常に奇妙なことです。

要約する:

credentialpersistencepermanentを使用することにより、クレデンシャルはどこかに保存され、自分自身を強化する必要がある場所にアクセスするために自動的に使用されます。

したがって、テストの目的で、この永続的な...クレデンシャルを削除したいと思います。

誰かアイデアはありますか?:)

0 投票する
1 に答える
938 参照

cocoa - NSURLCredential initWithTrust に関するヘルプが必要:

ここ数時間、壁に頭をぶつけていて、どこにも解決策のちらつきさえ見つかりません。JSON の操作方法を学習するアプリに取り組んでいるので、最初は GitHub 上のすべてのリポジトリのリストを返すだけの単純なアプリを作成しています。NSURLConnection によって返されたデータから JSON 応答を問題なく抽出できます。残念ながら、認証が必要なものにアクセスしようとすると、応答は常に{ message = "Not Found"; } 次のようになりますすべての正しい情報で応答するので、api.github.com と正常に通信できていることがわかります。まず、私が使用するリクエストを開始します。

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge認証方法が呼び出されると、次のように返されますNSURLAuthenticationMethodServerTrust(ログインするためにユーザー名とパスワードを提供する必要があるように感じるので、これは奇妙だと思います)。Apple のドキュメントによると、NSURLCredentialwithを作成する必要がありますinitWithTrust:。私は答えをグーグルで検索し、渡された のserverTrustからを取得するように言っている場所をいくつか見つけました。これを行っても、まったく効果がある兆候は見られません。protectionSpaceNSURLAuthenticationChallengeNSURLCredential

私はより広範なロギングも使用しましたが、それcredentialは実際には存在していましたが (最初はまったく作成されていないと思っていました)、属性が設定されていませんでしたcertificates: (null) hasPassword: 0 identity: (null) password: (null) 。問題は私の認証にあるとしか思えませんが、見つけた例を文字どおりに追跡しました。私は Lion の GM プレビューを使用しているので、バグを見つけたか、GitHub API に何らかのバグがある可能性があると思いますが、私のスキルレベルを考えると、私が探している馬鹿である可能性が高いと思います。私の目の前に座っている答えの上に。認証のすべてのステップ (できればすべてのスタイル) を実際に順を追って説明する優れたガイドを誰かが知っている場合は、メソッドを使用するように指示するだけで、どこにSecTrustRefに由来します。

0 投票する
0 に答える
1697 参照

objective-c - NSURLCredentialPersistencePermanent は永続的に見えませんか?

私はしばらくの間これを解決しようとしましたが、成功しませんでした。このような質問や、Apple による認証の使用に関する質問や他のブログのような質問は、すべてではありませんが、いくつかの光を当てています。

私が解決したい私の基本的な問題は次のとおりです。

NSURLConnection のデリゲートと NSURLCredential を NSURLProtectionSpace と NSURLCredentialStorage で利用することにより、サーバーに対して正常に認証しています。ただし、NSURLCredential の永続性を NSURLCredentialPersistencePermanent に設定しても、資格情報を初めて提供した後、サーバーからランダムに認証チャレンジ (401、次に 200) を受け取ります。ランダムなことは、意味をなさないものです。

場合によっては機能し、サーバーへの後続の呼び出しで 200 が正常に返されます。その後も機能せず、401 と 200 が返されます。Mike Abdullah は、こ​​こでプロセスをうまく説明しています。したがって、私の最初の推測では、401 認証を返し、200 を取得するプロセスは標準的な手順であり、排除することはできません。ただし、401 を削除できる場合もあります。そのため、何かを見逃しているようです。

私が送信しているリクエストは、いくつかの GET と 2 つの POST です。問題は、1 回の POST で大量のデータがアップロードされることです。401 を取得しても、データは認証後に nirvana にアップロードされ、再度アップロードされます。

私の代替ソリューションは、401 が受信されたときにとにかくデータが送信されないようにすることです。前述のように 401 が返されないことがあるため、これは難しいようです。

これが何らかの意味で理解できない場合は、情報を追加します。私の推測では、NSURLCredential 全体を間違った方法で使用しているか、最初に 401 を取得してから 200 を取得して認証する方法を使用しているため、排除することはできません。

以下の私のコードからの抜粋:

このセットアップでは、NSURLConnection のデリゲートがすべて正しく呼び出されます

ご意見をお待ちしております。どうも

EDIT UPDATE 01これは既知の問題のようで、かなり前にバグレポートとして提出されていましたが、解決されていません。NSURLConnection は、「Expect: 100-continue」ヘッダーをサポートしていないようです。これは、正直なところ、大きな失望です。私はこの問題に何時間も取り組んできましたが、すべてをやり直さなければならないことがわかりました。詳細については、バグ レポートを参照してください: http://openradar.appspot.com/5188833

EDIT UPDATE 02この問題に対する私の現在の回避策は、映画データを含む巨大な HTTP POST を実行する直前に認証を行うことです。いくつかのマイナーな XML ファイルもアップロードする必要があるため、映画のアップロードには事前認証を使用します。これはまだ私には醜いように感じますが、物事を進めなければなりません...このトピックに関する意見/知識は引き続き高く評価されます。

0 投票する
0 に答える
479 参照

objective-c - ストレージから NSURLCredentials を削除できません

アカウントがアプリから削除されたときに、資格情報をストレージから削除しようとしています。私が使用しているコードは次のとおりです。

すべての適切なキーと値に対して remove 部分が呼び出されますが、メソッドが完了した後も、すべての資格情報はそのまま残ります。そんなことがあるものか?

新しい資格情報も設定しようとしましたが、それらも認識されていないようです

0 投票する
3 に答える
5342 参照

iphone - UIWebViewからクレデンシャルをクリアします

ここで行っているのは、認証されたURLを取得することです。したがって、私は関数を使用します

認証に直面すると、UIAlertViewを提示してユーザー名とパスワードを入力し、ユーザーが正しく入力した場合、このメソッドが呼び出されます。

この方法では、ログインウィンドウを非表示にして、詳細ビューを表示します。

ログアウト機能が必要なときに問題が発生しました。私が欲しいのは、authentication =の目的で、ユーザーが入力した資格情報を削除し、そのURLを再度取得することだけです。だから、私はdidReceiveAuthenticationChallengeを呼び出します。

しかし、何も聞かずに直接didReceiveResponseメソッドに移動します。ここでの問題は、クレデンシャルをクリアできないことです。これを行うのを手伝ってもらえますか?

よろしくお願いします!