機能
ユーザ名とパスワード文字列から、そのユーザがNavigatorを使用可能か判定し、同時にそのユーザに関する情報を返却します。
書式
int KVRCK_authenticate(const char *username, const char *passwd, int *uid, char *uname, char *ucomment, int *gid, char *gname, char *reserve1, char *reserve2); |
パラメタ
const char * | username | (in) | ユーザ名 |
戻り値
KVRCK_RET_NORMAL | ユーザはNavigatorを利用可能 |
説明
本関数は正しいユーザ名username、およびパスワードpasswdが指定された場合には、戻り値としてKVRCK_RET_NORMAL を返します。KVRCK_RET_NORMALを返した場合、uid、uname、ucomment、gid、gname にユーザ情報を返却します。KVRCK_RET_NORMAL以外の戻り値の場合、これらのフィールドには何も返却されません。
定量制限
username、unameの最大長は、KVRCK_MAXLEN_USERNAME文字となります。
passwdの最大長は、KVRCK_MAXLEN_PASSWD文字となります。
ucommentは、KVRCK_MAXLEN_UCOMMENT文字となります。
gnameの最大長は、KVRCK_MAXLEN_GROUPNAME文字となります。
備考
uname、ucomment、gnameは、返却値の終端に必ず終端記号’\0’が配置されます。
usernameは、ユーザの認証用に使う文字列であり、必ずしもユーザ名を示すものではありません。ユーザ名として使用する場合は、必ずunameを使用してください。
使用例
=================================================================================== /* 変数宣言 */ int ret; char username[KVRCK_MAXLEN_USERNAME + 1]; char passwd[KVRCK_MAXLEN_PASSWD + 1]; int uid; char uname[KVRCK_MAXLEN_USERNAME + 1]; char ucomment[KVRCK_MAXLEN_UCOMMENT + 1]; int gid; char gname[KVRCK_MAXLEN_GROUPNAME + 1]; char *reserve1; char *reserve2; /* ユーザ名パスワードを設定 */ strcpy(username, "navi"); strcpy(passwd, "password"); /* 認証関数呼び出し */ ret = KVRCK_authenticate(username, passwd, &uid, uname, ucomment, &gid, gname, reserve1, reserve2); switch (ret) { case KVRCK_RET_NORMAL: /* ユーザはNavigatorを利用可能 */ printf("Login OK\n"); printf("uid=%d, uname=%s, ucomment=%s, gid=%d, gname=%s\n", uid, uname, ucomment, gid, gname); break; case KVRCK_RET_FAILED: /* 認証に失敗した */ printf("Login failed.\n"); break; case KVRCK_RET_EXPIRED: /* 期限切れ */ printf("Password is expired.\n"); break; case KVRCK_RET_OTHER: /* その他のエラーが発生した */ printf("Login error!\n"); exit(1); } ===================================================================================