認証でシステムプロキシ設定を変更しようとしています。システムプロキシは正常に変更できますが、私のアプリケーションが再起動されると、認証ダイアログ(ユーザー名とパスワードが必要です)が常にポップアップします。システムプロキシを1回限りの認証で変更する
どのようにして一度だけ認証することができますか?
私はGitHubの上でソースコードとデモアプリケーションを持っている:https://github.com/codinn/SystemProxySettingsDemo
詳細:
デモアプリの説明
システムのプロキシ設定を変更するためのデモを。クリックした後
問題
「システムのプロキシを有効にする」、罰金である、auhorizationを要求するためのダイアログがポップアップ表示され、それ以降のクリックが再びポップアップしません。 しかし、アプリを終了して再起動すると、承認ダイアログが再度ポップアップします。
私たちはどのようにして一度だけ認証することができますか?システムのネットワーク設定でSOCKSプロキシ設定が
ステップ
- 起動デモアプリ「SystemProxySettingsDemo」を再現するために
- クリックして、ボタン、「システムのプロキシを有効にする」、auhorizatingダイアログがポップアップされますホストに変更:127.0.0.1、ポート:8888
- 「システムプロキシを無効にする」ボタンをクリックしてシステムネットワーク環境設定プロキシをクリアします
- アプリを終了し、 https://github.com/codinn/SystemProxySettingsDemo
- アップルの公式サンプル:https://developer.apple.com/library/content/samplecode/EvenBetterAuthorizationSample/Introduction/Intro.html
- クリックして「システムのプロキシを有効にする」ボタンを獲得し、auhorizatingダイアログは、再び
参照
- GitHubのリポジトリをポップアップ表示されます
- ファイル "ViewController.swift":認可参照の作成、認可要求、システムネットワークPrプロキシ設定を参照してください。
関数を定義:
// requesting authorization with “AuthorizationCopyRights”
// set system network preferences proxy with “SCPreferencesCreateWithAuthorization” and “SCPreferencesPathSetValue”
func socksProxySet(enabled: Bool)`
4.ファイル「CommonAuthorization.swift」:セット/取得許可ポリシーデータベースエントリ 5.ファイル「codinnDemoRightRemove。SH AuthorizationRightSetとして 『タイムアウト『(ポリシーデータベースルールの属性を設定する』」:私はポリシーデータベースへの認証の権利を格納しようとした
- :明確な政策のデータベース項目は、アプリに
その他の注意事項をデモするために属しています』 0、または3600、または属性「タイムアウト」を削除しても動作しない)
- 「AuthorizationRightSet」のパラメータ「rightDefinition」の値として「kAuthorizationRuleClassAllow」または「kAuthorizationRuleAuthenticateAsAdmin」を使用してみましたが、機能しませんいずれか