問題タブ [sfauthorizationpluginview]
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.
objective-c - NSView をコンセントに接続できません
NameAndPasswordコード サンプルを拡張して、セキュリティで保護されたテキスト フィールドがリターン キーを押したときに認証アクションを実行するようにしようとしています (現在、認証はボタンが buttonPressed アクションによって押された場合にのみ機能します)。
さまざまなオプションを試しました-既存のnibファイルを置き換えるために、ViewControllerとともにxibファイルを作成しましたが、そのような場合、xibカスタムビューと、以前にnibファイルのビューに接続されていたIBOutletとの間の接続を作成できませんそれを削除しました。
また、既存の安全なパスワード フィールドを nib ファイルから自分で作成した App Delegate に接続しようとしましたが、どちらも機能しません。テキスト フィールドを appdelegate.h インターフェイス セクションにコントロール アンド ドラッグしますが、行が表示されません。
このサンプルが非常に古くなっていることは承知しています。私の質問は、これらのビューでカスタム アクションを作成するにはどうすればよいか、または新しいサーフェスでこのプロジェクトを再作成するにはどうすればよいかということです。
objective-c - Objective-C ライブラリの多重継承
NameAndPassword の例 ( https://github.com/skycocker/NameAndPassword ) を拡張しており、この実装ファイル (https://github.com/skycocker/NameAndPassword/blob/master/NameAndPasswordPlugin) で IOBluetooth メソッドにアクセスする必要があります。メートル
インターフェイスは次のようになります。
CBCentralManagerDelegate
appdelegate のように継承するにはどうすればよいですか。
EXNameAndPassword
SFAuthorizationPluginView と CBCentralManagerDelegate などの両方から継承する必要があります。これはとても簡単だと思います。私は obj-c の初心者です。コンポジションについて読みましたが、うまくいきません。
私が現在持っているのは
しかし、合成されていないプロパティに関する警告が表示され続けます-継承を必要としないプロジェクトでそれらを合成する必要はなかったSFAuthorizationPluginView
ので、何か間違ったことをしていると思います。
objective-c - OSX ロック画面にボタンを追加
既存の OSX ロック画面を変更することは可能ですか? たとえば、クリックすると「Hello World」と表示されるボタンをユーザーのプロフィール画像の上に追加したい場合、これは可能ですか?
目標は、ボタンがクリックされたときに AppleScript を実行することです。
編集 -
この内部には、ログイン画面の画像などを変更する機能がありますが、「ロックされたユーザーインターフェイス」の略であると想定している「LUI」と省略されたコンパイル済みの nib ファイルもいくつか含まれています。パラレルをセットアップして、xcode 3.2.6 を使用して Snow Leopard でそれらを開こうとしています。ペン先を編集できるかどうかを確認します。これを達成できた場合、そのようなファイルを編集することは TOS に違反しますか?
別の可能性は、その上にウィンドウを実行することでした。画面ロックでは、単に言うだけでスクリーンセーバーの上にウィンドウを表示できます
それでも、それはログイン画面をオーバーレイしません。
これはあり得ないことだと思いますが、Knock to Unlock アプリで似たようなものを見ました。
objective-c - 信頼できるアプリケーションから OS X キーチェーン項目にアクセスする
キーチェーンを作成してから、事前定義された信頼できるアプリケーション リストを含む項目を追加しています。
Keychain Access アプリケーションで新しく作成したキーチェーンを開くと、信頼できるアプリのリストに自分のアプリケーションが表示されます。
問題は、信頼できるアプリケーションの 1 つを介してそのキーチェーンからキーを読み取ろうとしたときです。
genericPassErr
に等しい-25293
、つまり
Error: 0xFFFF9D33 -25293 The user name or passphrase you entered is not correct.
コードの前半で を実行SecKeychainSetUserInteractionAllowed(0)
し、この行をコメントアウトすると、アプリケーションがキーチェーンにアクセスする許可を求めるプロンプトがシステムから表示されます。許可すると、すべて正常に実行されます。ただし、要点は、ユーザーにプロンプトを表示せずにそれを実行できる必要があるということです。アプリを ACL に追加したので、このように動作することを期待しています。私が間違っていることを知っていますか?
添付のスクリーンショットで「すべてのプログラムがこのアイテムにアクセスできる」ラジオボックスにチェックを入れると、すべてがプロンプトなしで機能します。しかし、リストされているアプリだけにアクセスできるようにしたくありません。
objective-c - OS X 認証プラグインからのキーチェーン項目へのアクセス中にエラーが発生しました
NameAndPassword認証プラグインを使用して、OS X のロック画面からログインしています(オリジナルが壊れているため、プラグインの修正バージョン)。何らかの形で保存されたパスワードにアクセスできるようにする必要があり、現在、キーチェーンを使用してこれを達成しようとしています。
キーチェーンを作成し、ユーザーにプロンプトを表示せずにパスワードにアクセスするために必要な ACL とともに、パスワードを内部に保存することができました。ACL に追加されたアプリケーションはプロンプトなしで正常に動作しますが、この NameAndPassword 認証プラグインを使用してキーチェーンにアクセスしようとすると、パスワードを取得するため-25293 The user name or passphrase you entered is not correct
に呼び出すときにエラーが発生SecKeychainFindGenericPassword
します。
/Library/Security/SecurityAgentPlugins/NameAndPassword.bundle
バンドルと実行可能ファイル自体の両方/Library/Security/SecurityAgentPlugins/NameAndPassword.bundle/Contents/MacOS/NameAndPassword
を ACL に追加しようとしましたが、エラーは常に同じです。
これは、このプラグインが別のユーザーとして (またはまったくユーザーとして) 実行されていることが原因であると考えられます。このエラーを取り除くにはどうすればよいですか? それとも、それは不可能でしょうか?このような場合、ホームディレクトリにアクセスできない場合、このプラグイン内からパスワードを保存してアクセスするにはどうすればよいですか? 私は何週間もこれに苦労してきました。
objective-c - SecurityAgentPlugin が Yosemite で機能しなくなった (SFAuthorizationPluginView)
SFAuthorizationPluginView を使用してユーザーに UI を表示する Authorization プラグインを開発しました。この例は、Apple が提供する「古い」 NameAndPassword の例に基づいています。
この認証プラグインを使用して、カスタム ビューを使用してセッションのロックを解除します (authorizationdb の「system.login.screensaver」認証を更新しました)。これは、Yosemite の最後の更新までうまく機能していました。Yosemite 以降、ユーザーがセッションにログインした後、SFAuthorizationPluginView が閉じなくなりました。次のようにして、ウィンドウを強制的に閉じるように例を更新できます。
ユーザーがログインすると (ユーザーを承認した後)、SFAuthorizationPluginView は適切に閉じられますが、バックグラウンドで何かがアクティブなままであり、ユーザーはセッションでフォーカスを持っていません (ユーザーは何かを選択したり、テキスト編集に書き込むことはできません)。例)。再びフォーカスを得るには、SecurityAgent を手動で強制終了する必要があります。(システムは 30 秒後に SecurityAgent を自動的に強制終了するように見えることに注意してください)。
次のページで、Apple の NameAndPassword 認証プラグイン サンプルの修正された 2014 バージョンを見つけましたが、Yosemite でも同じ問題に直面しています: Apple の NameAndPassword 認証プラグイン サンプルの修正された 2014 バージョン
Yosemite がリリースされるまで、このコードは正常に機能していました。
同様の問題を実験している人はいますか?この問題を解決するためのアイデアやアドバイスはありますか?
objective-c - SFAuthorizationPluginView の例 ボタンを押した後に NameAndPassword がハングする
ここにあるように、パッチを適用したバージョンの NameAndPassword を使用しています: https://github.com/skycocker/NameAndPassword
NameAndPassword プラグインのみを使用して、ログイン ウィンドウの外 (たとえば、system.login.screensaver または自分のテスト権限) でこれを使用すると、[OK] または [キャンセル] を押した後、ウィンドウが約 10 秒間ハングします。
いくつかのログを追加すると、MechanismDestroy がプラグインで呼び出され、NameAndPassword が解放されていることがわかりますが、NameAndPassword で解放されることはありません。また、PluginDestroy が呼び出されることもありません。MechanismDestroy が呼び出された後、SecurityAgent はさらに 10 秒間ハングアップします。
この関連記事を見ました: SecurityAgentPlugin が Yosemite (SFAuthorizationPluginView) で動作しなくなりました
しかし、受け入れられた回答に従うことは機能せず、Authorization Plug-in Referenceによれば、didDeactivateを呼び出す必要はありません(RequestInterruptへの呼び出しはなく、MechanismDeactivateは呼び出されません)。SetResult を呼び出すだけで十分です。
ビューからウィンドウを取得して強制的に閉じることでハッキングできますが、意図したとおりに機能させる方法が必要です。