从全名获取简短的用户名

时间:2009-10-01 22:48:27

标签: cocoa macos

任何人都知道如何获取用户的简短用户名,例如。 “johnsmith”,全名,例如。 “约翰史密斯”?

注意我对任何用户感兴趣,而不是当前用户,因此像NSUserName这样的函数是无关紧要的。

为什么呢?我正在使用授权服务验证用户名和密码。这允许人们输入他们的短名称或全名,这很好,但我需要知道他们实际登录的是谁(即短用户名和/或用户ID)。

像[NSHomeDirectoryForUser(用户名)lastPathComponent]这样讨厌的黑客行为并不一致。

1 个答案:

答案 0 :(得分:6)

您需要使用Collaboration Framework :)。 将此框架链接到您的项目,然后您只需执行以下操作:

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

瞧!

编辑:如果您只需要查找绑定在网络上的用户,则需要使用+managedIdentityAuthority代替+localIdentityAuthority。 如果您需要找到本地用户和网络用户,请使用+defaultIdentityAuthority