1

私はMac開発に不慣れです。Objective-Cを使用していますが、Macマシンにログインしているユーザーのドメイン名とユーザーSIDを見つける方法を知りたいです。Windowsでは、Microsoftが提供するAPIがあり、ActiveDirectoryからのユーザー情報を通知します。Mac開発用の同様のオプションを探しています。

もう一つ知りたいです。Macでは、getuid(void)関数を使用してユーザーのIDを取得できます。しかし、それはすべてのドメインユーザーにとって一意でしょうか?そうでない場合は、ドメイン内のすべてのユーザーを区別するための一意のIDを維持できるように、調査する代替案を教えてください。

注:ここでは、すべてのMacマシンがWindowsActiveDirectoryに接続されていると考えています。これについて教えてください。

ありがとう、タウシフ。

4

2 に答える 2

0

ユーザー名には、次のものを使用できます。

NSString * NSUserName( void );
NSString * NSFullUserName( void );

から<Foundation/Foundation.h>

ユーザーIDには、次を使用します。

uid_t getuid( void );

から<unistd.h>

于 2012-08-06T15:03:59.570 に答える
0

BSDのメンバーシップAPIを使用して、ドメインコントローラーにユーザーのSIDを照会できます。

- (NSText*)getSidForUser:(NSText*)user
{
    uuid_t uuid;

    // change the type (ID_TYPE_USERNAME) for different types of data, such as Group
    if(mbr_identifier_to_uuid(ID_TYPE_USERNAME, [user UTF8String], [user length], uuid) != 0)
    {
        // handle error
        return nil;
    }

    nt_sid_t ntSid;
    if(mbr_uuid_to_sid(uuid, &ntSid) != 0)
    {
        // handle error
        return nil;
    }        

    char buffer[200] = {0};
    if(mbr_sid_to_string(&ntSid, buffer) != 0)
    {   
        // handle error     
        return nil;
    }

    NSString* sid = [NSString stringWithCString:buffer encoding:NSUTF8StringEncoding];

    return sid;
}
于 2015-12-03T11:41:23.297 に答える