上一主题: UserDefinedFunction 函数下一主题: SEOS_EXITINET


UserDefinedPrefix_RegisterExit 函数

在 Windows 上有效

UserDefinedPrefix_RegisterExit 函数为一些事件注册 exit 函数。 在启动期间处理 seosd 服务和 pwdchange.dll 中的注册。

如果函数成功,则返回 0。 其他数字表示失败;将继续正常执行,就像未调用任何回调函数一样。

注意:在调用此函数之前,由 seosd 服务和 pwdchange.dll 从注册表中读取 UserDefinedPrefix

declspec(dllexport) int __stdcall UserDefinedPrefix_RegisterExit(PFNEXIT pFunctionsExit[], unsigned long* pEventsType).

其中,PFNEXIT 定义为指向将 void 作为参数接收并返回 int 的函数的指针。

int UserDefinedFunction(void* data, SEOS_EXITRES * pExitResult);
pFunctionsExit

将在 seosd 服务和 pwdchange.dll 中注册的一系列用户定义的函数。

pEventsType

与 pFunctionsExit 参数相同条目中的函数对应的一系列事件类型。

有效的事件类型为:

示例

注册用户的 exit 函数。

/* 注册将在 CA ControlMinder 密码验证之前调用的
用户定义函数的示例。 (用户已在注册表中配置前缀 PWD) */
typedef int(*PFNEXIT)(void);
declspec(dllexport) int __stdcall PWD_RegisterExit(PFNEXIT pFunctionExit[],unsigned long* pEventTypes)
{
     pFunctionExit[0] = (PFNEXIT)MyExitFunc;
     pEventTypes[0] = AUTHXAPI_EV_PREVERPWD;
     return 0;
}

结构和数据类型

本部分介绍退出 API 函数用于在函数与 CA ControlMinder 后台进程/服务之间来回传递信息的数据结构。 所用结构取决于 exit 函数拦截的事件。

以下内容介绍这些数据结构的每个字段:

PFSeosExitFunc

指向函数的指针

SEOS_EXITLOGIN

登录事件的数据结构

SEOS_EXITGENR

常规资源检查事件的数据结构

SEOS_EXITINET

TCP/IP 请求事件的数据结构(仅 UNIX)

SEOS_EXITPASS

密码质量检查和密码更改事件的数据结构

SEOS_EXITRES

在任何事件之后返回给 CA ControlMinder 的结果的数据结构

SEOSDB_ODF

数据库中对象的定义的数据结构(仅 UNIX)

SEOSDB_PDF

数据库中属性的定义的数据结构(仅 UNIX)

SEOS_ACCESS

封装 SEOS_ACCS 类型的单个成员

SEOS_ACCS

保留访问标志列表

SEOS_CID

包含类标识描述符(仅 UNIX)

SEOS_OID

包含对象标识描述符(仅 UNIX)

SEOS_PID

包含属性标识描述符(仅 UNIX)

SEOS_EXITLOGIN

传递给与尝试的登录事件链接的 exit 函数的第一个参数是指向 SEOS_EXITLOGIN 结构的指针。 该结构包含有关尝试登录的信息。 可以在 authxapi.h 文件中找到 SEOS_EXITLOGIN 结构。

uid_t luid

尝试登录的用户的用户 ID。

char const *szUname

尝试登录的用户的名称。

char const *szTerm

用户尝试从其登录的终端的名称。 在 CA ControlMinder 启动时,设置为 NULL。

dev_t device

尝试登录的程序的设备号。

ino_t inode

尝试登录的程序的 Inode 号。

char const *szProg

尝试登录的程序的名称。 不适用时设置为 NULL。

SEOS_EXITGENR

传递给与尝试的常规资源检查事件链接的 exit 函数的第一个参数是指向 SEOS_EXITGENR 结构的指针。 该结构包含有关验证的用户和资源的信息。 可以在 authxapi.h 文件中找到 SEOS_EXITGENR 结构。

char const *szClass

访问的常规资源类的名称。 仅检查明确决定要验证的类,并忽略其他类。

char const *szRes

访问的资源的名称。

uid_t uid

尝试访问的用户的 UNIX 或 Windows 用户 ID。 不适用时设置为 ‑1。

int seos_handle

与尝试访问的用户相关联的 ACEE 句柄。 如果未在 CA ControlMinder 中定义用户,则为负值,否则为 0 或正值。

char const *szUserName

尝试访问的用户的名称。

dev_t device

尝试访问的程序的设备号。 不适用时设置为 0。

ino_t inode

尝试访问的程序的 Inode 号。 不适用时设置为 0。

char const *szTerm

用户尝试从其访问的终端的名称。 如果用户不在本地终端上,这将设置为远程主机名。

SEOS_ACCESS access_info

表示所请求访问类型的不带符号的长整数。

char const *szProg

尝试访问的程序的名称。 不适用时设置为 NULL。

更多信息:

SEOS_ACCS 结构