Настройка экрана входа в Mac OSX (SFAuthorizationPluginView)
Я пытаюсь расширить экран входа в MacOSX 10.9.1 (Mavericks). Как я выяснил, это возможно путем реализации нового плагина аутентификации и его установки в базу данных авторизации.
Я скачал пример NameAndPassword, который показывает, как реализовать интерфейс и перезаписать / расширить SFAuthorizationPluginView. Но проблема в том, что я не могу построить его под Маверикс. Поэтому я решил скачать второй пример, который называется NullAuthPlugin. Этот компилируется, но я не узнал, как его установить.
Итак, мой вопрос один: есть ли хороший и обновленный учебник для этого (TechNotes от 2008-09-16)?
И вопрос номер два, если это может быть разработано с C# (Xamarin.Mac / MonoMac), потому что я не очень хорош в разработке Objective-C / C / C++.
Спасибо!
2 ответа
Что ж, об ошибках сообщалось в Apple несколько раз, но пока они ничего не делали. Самый простой ответ: вам нужна исправленная версия плагина NameAndPassword - официальная версия не работает. Я установил свой исправленный плагин на GitHub: https://github.com/skycocker/NameAndPassword
Важно, чтобы вы заменили
<string>loginwindow:login</string>
строка в базе данных политики авторизации с
<string>NameAndPassword:invoke</string>
В противном случае он не войдет в систему. Я бы не TheDarkKnight этого без помощи TheDarkKnight.
Прежде всего: никогда, НИКОГДА, НИКОГДА не начинайте отлаживать плагин входа в систему, поместив его в праве входа в консоль. Вам необходимо создать специальный тестовый "фиктивный" прямо в базе данных auth, полностью независимый от любых других прав, которые ОС может потребовать во время своей работы. Назовите это как "MyTestRight-RemoveMeAfterTest".
Создайте файл plist, который выглядит примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>class</key>
<string>evaluate-mechanisms</string>
<key>comment</key>
<string>Used to validate a terminal user.</string>
<key>mechanisms</key>
<array>
<string>NameAndPassword:invoke</string>
</array>
</dict>
</plist>
Установите его с помощью команды "security" из терминала:
"авторизация безопасности db пишет MyTestRight-RemoveMeAfterTest НИКОГДА не редактируйте auth db вручную, даже если вы все еще можете это сделать, как в случае с osx до 10.9. Если вы допустили ошибку и ОС не может разобрать файл, вы окажетесь в мире боли. Я был там. Я делал эти плагины годами. Если ОС не может прочитать файл, вы будете в той же ситуации, если ваш плагин зависает при входе в систему - без проблем. Если у вас не было предвидения для включения SSH, вам придется загружаться в другой раздел или загружаться из резервной копии машины времени. В последнем случае лучше сохранить самые последние изменения на внешнем диске. После того, как вы установили права в БД, вы должны протестировать его из внешней программы. Вам необходимо вызвать инфраструктуру безопасности, как показано в файле readme, включенном в пример имени и пароля, и запросить ваше право, как это сделала бы ОС. Будьте осторожны при использовании любого из образцов яблок. Используйте их только в качестве руководства. NameAndPassword имеет ошибки и никогда не мог работать. Последний раз оно обновлялось в 2006 году и использует множество устаревших функций. Это на самом деле ничего не делает, а просто оболочка.