Получить краткое имя пользователя от полного имени - PullRequest
2 голосов
/ 02 октября 2009

Кто-нибудь знает, как получить короткое имя пользователя, например. "Джонсон", учитывая их полное имя, например. "Джон Смит"?

Примечание. Меня интересует любой пользователь, а не текущий, поэтому такие функции, как NSUserName, не имеют значения.

Почему? Я аутентифицирую имя пользователя и пароль с помощью служб авторизации. Это позволяет людям вводить либо свое короткое имя, либо свое полное имя, что неплохо, но тогда мне нужно знать, под кем они фактически вошли (т.е. короткое имя пользователя и / или идентификатор пользователя).

Противные хаки, такие как [NSHomeDirectoryForUser (username) lastPathComponent], не работают согласованно.

1 Ответ

6 голосов
/ 02 октября 2009

Вам необходимо использовать Collaboration Framework :). Свяжите этот фреймворк с вашим проектом, и тогда вам просто нужно сделать следующее:

CBIdentity* identity = [CBIdentity identityWithName:@"John Smith" authority:[CBIdentityAuthority localIdentityAuthority]];
NSLog(@"Posix name: %@", [identity posixName]);

И вуаля!

РЕДАКТИРОВАТЬ: если вам нужно найти только пользователей, которые связаны в сети, вам нужно использовать +managedIdentityAuthority вместо +localIdentityAuthority. И если вам нужно найти как локальных пользователей, так и пользователей сети, используйте +defaultIdentityAuthority.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...