上一主题: 对于 UNIX下一主题: authxapi_UnregisterExitFunction 函数


authxapi_RegisterExitFunction 函数

在 UNIX 上有效

authxapi_RegisterExitFunction 函数为特定事件注册 exit 函数。 尽管可以在任何阶段执行注册,但应在程序启动和关闭期间对其进行处理。

如果函数成功,则返回 0。 如果失败,则设置全局变量 errno,并返回以下错误代码之一:

返回值

ERRNO

含义

AUTHXAPI_E_OCCUPIED

EEXIST

事件已注册。

AUTHXAPI_E_NOEVENT

EINVAL

事件代码无效。

int authxapi_RegisterExitFunction (int event, PFSeosExitFunc user_func);
event

将您的退出 API 函数注册到的事件的代码。 仅在链接到密码实用程序时才提供密码事件。 仅在链接到 seosd 后台进程时才提供常规系统事件。

有效的 event 值如下:

AUTHXAPI_EV_PRELOGIN

登录前事件‑

AUTHXAPI_EV_POSTLOGIN

登录后事件‑

AUTHXAPI_EV_PREGNRES

常规资源前事件‑

AUTHXAPI_EV_POSTGNRES

常规资源后事件‑

AUTHXAPI_EV_PREINET

TCP/IP 请求前事件‑

AUTHXAPI_EV_POSTINET

TCP/IP 请求后事件‑

AUTHXAPI_EV_PREVERPWD

密码质量检查前事件‑

AUTHXAPI_EV_POSTVERPWD

密码质量检查后事件‑

AUTHXAPI_EV_PRESETPWD

密码更改前事件‑

AUTHXAPI_EV_POSTSETPWD

密码更改后事件‑

user_func

指向在指定事件发生时 CA ControlMinder 应调用的用户函数的指针。

示例:注册用户的 Exit 函数。

此示例说明如何使用 authxapi_RegisterExitFunction 函数拒绝用户 jsmith 的所有登录尝试。

/* 拒绝用户“jsmith”的所有登录尝试的示例函数 */
int MyExitFunc(void *exit_data, SEOS_EXITRES *res)
{
    SEOS_EXITLOGIN *login_data;

    login_data = (SEOS_EXITLOGIN *)exit_data;
    if (login_data‑>szUname != NULL)
    {
             if (strcmp(login_data‑>szUname, “jsmith”))
                 return 0;
             res‑>result = SEOS_EXITR_DENY;
    }
    return 0;
}

/* 扩展初始化时 Access Control 查找的 */
/* 函数。 */
int sample_RegisterExit(void)
{
    return authxapi_RegisterExitFunction(AUTHXAPI_EV_PRELOGIN,
                                         MyExitFunc);
}

更多信息:

authxapi_UnregisterExitFunction 函数