类
GioTlsInteraction
since: 2.30
描述 [src]
class Gio.TlsInteraction : GObject.Object
{
/* No available fields */
}
GTlsInteraction
为 TLS 连接和数据库代码与用户交互提供了一种机制。它可以用来向用户请求密码。
要使用与 TLS 连接配合使用的 GTlsInteraction
,请使用 g_tls_connection_set_interaction()
。
调用者应该实例化一个实现了显示所需对话框的各种交互方法的派生类。
调用者应使用类似 g_tls_interaction_invoke_ask_password()
的 'invoke' 函数来运行交互方法。这些函数确保交互在主循环中调用,而不是在当前线程中,如果当前线程没有运行主循环。
派生类可以决定通过重写其类初始化函数中的虚拟方法来实现哪些交互方法。未实现的任何交互将返回 G_TLS_INTERACTION_UNHANDLED
。如果派生类实现了异步方法,它还必须实现相应的完成方法。
since: 2.30
实例方法
g_tls_interaction_ask_password
运行同步交互以请求用户密码。通常,应使用 g_tls_interaction_invoke_ask_password()
而不是此函数。
since: 2.30
g_tls_interaction_ask_password_async
运行异步交互以请求用户密码。通常,应使用 g_tls_interaction_invoke_ask_password()
而不是此函数。
since: 2.30
g_tls_interaction_ask_password_finish
完成请求密码的用户交互请求。应在 g_tls_interaction_ask_password_async()
完成回调调用后执行此操作。
since: 2.30
g_tls_interaction_invoke_ask_password
调用交互以请求用户密码。它会在主循环中调用此交互,特别是当交互创建时由 g_main_context_get_thread_default()
返回的 GMainContext
。这是由 GTlsConnection
或 GTlsDatabase
调用来请求密码。
since: 2.30
g_tls_interaction_invoke_request_certificate
调用交互以请求用户选择要用于连接的证书。它会在主循环中调用此交互,特别是当交互创建时由 g_main_context_get_thread_default()
返回的 GMainContext
。这是由 GTlsConnection
在握手过程中请求证书时调用的。
since: 2.40
g_tls_interaction_request_certificate
运行同步交互,提示用户选择与连接一起使用的证书。一般情况下,应使用 g_tls_interaction_invoke_request_certificate()
而不是此函数。
since: 2.40
g_tls_interaction_request_certificate_async
运行异步交互,请求用户为连接选择证书。一般情况下,应使用 g_tls_interaction_invoke_request_certificate()
而不是此函数。
since: 2.40
g_tls_interaction_request_certificate_finish
完成请求证书的用户交互请求。应在调用 g_tls_interaction_request_certificate_async()
完成回调后执行。
since: 2.40
信号
从 GObject 继承的信号(1个)
GObject::notify
当对象的一个属性通过 g_object_set_property()、g_object_set() 等设定值时,将发出 notify 信号。
类结构
struct GioTlsInteractionClass {
GTlsInteractionResult (* ask_password) (
GTlsInteraction* interaction,
GTlsPassword* password,
GCancellable* cancellable,
GError** error
);
void (* ask_password_async) (
GTlsInteraction* interaction,
GTlsPassword* password,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
);
GTlsInteractionResult (* ask_password_finish) (
GTlsInteraction* interaction,
GAsyncResult* result,
GError** error
);
GTlsInteractionResult (* request_certificate) (
GTlsInteraction* interaction,
GTlsConnection* connection,
GTlsCertificateRequestFlags flags,
GCancellable* cancellable,
GError** error
);
void (* request_certificate_async) (
GTlsInteraction* interaction,
GTlsConnection* connection,
GTlsCertificateRequestFlags flags,
GCancellable* cancellable,
GAsyncReadyCallback callback,
gpointer user_data
);
GTlsInteractionResult (* request_certificate_finish) (
GTlsInteraction* interaction,
GAsyncResult* result,
GError** error
);
}
GTlsInteraction
的类。派生类通过实现各种虚拟交互方法来处理 TLS 交互。
派生类可以通过在其类初始化函数中重写这些虚拟方法来实现它们想要支持的任意交互方法。如果派生类实现了异步方法,则必须也实现相应的完成方法。
同步交互方法应实现模态对话框的显示,而异步方法应实现非模态对话框的显示。
如果用户取消交互,则结果应为 G_TLS_INTERACTION_FAILED
,错误应设置域名 G_IO_ERROR
和代码 G_IO_ERROR_CANCELLED
。
类成员
ask_password: GTlsInteractionResult (* ask_password) ( GTlsInteraction* interaction, GTlsPassword* password, GCancellable* cancellable, GError** error )
同步请求密码。如果实现返回
G_TLS_INTERACTION_HANDLED
,则应使用g_tls_password_set_value()
或类似函数填写密码参数。ask_password_async: void (* ask_password_async) ( GTlsInteraction* interaction, GTlsPassword* password, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )
异步请求密码。
ask_password_finish: GTlsInteractionResult (* ask_password_finish) ( GTlsInteraction* interaction, GAsyncResult* result, GError** error )
完成异步请求密码的操作。如果实现返回
G_TLS_INTERACTION_HANDLED
,则异步方法的密码参数应已通过使用g_tls_password_set_value()
或类似函数填写。request_certificate: GTlsInteractionResult (* request_certificate) ( GTlsInteraction* interaction, GTlsConnection* connection, GTlsCertificateRequestFlags flags, GCancellable* cancellable, GError** error )
同步请求证书。如果实现返回
G_TLS_INTERACTION_HANDLED
,则应使用g_tls_connection_set_certificate()
填写连接参数。request_certificate_async: void (* request_certificate_async) ( GTlsInteraction* interaction, GTlsConnection* connection, GTlsCertificateRequestFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )
异步请求证书。
request_certificate_finish: GTlsInteractionResult (* request_certificate_finish) ( GTlsInteraction* interaction, GAsyncResult* result, GError** error )
异步请求证书的操作已完成。如果实现返回
G_TLS_INTERACTION_HANDLED
,则异步方法的连接参数应由 g_tls_connection_set_certificate() 函数填充。
虚方法
Gio.TlsInteractionClass.ask_password
运行同步交互以请求用户密码。通常,应使用 g_tls_interaction_invoke_ask_password()
而不是此函数。
since: 2.30
Gio.TlsInteractionClass.ask_password_async
运行异步交互以请求用户密码。通常,应使用 g_tls_interaction_invoke_ask_password()
而不是此函数。
since: 2.30
Gio.TlsInteractionClass.ask_password_finish
完成请求密码的用户交互请求。应在 g_tls_interaction_ask_password_async()
完成回调调用后执行此操作。
since: 2.30
Gio.TlsInteractionClass.request_certificate
运行同步交互,提示用户选择与连接一起使用的证书。一般情况下,应使用 g_tls_interaction_invoke_request_certificate()
而不是此函数。
since: 2.40
Gio.TlsInteractionClass.request_certificate_async
运行异步交互,请求用户为连接选择证书。一般情况下,应使用 g_tls_interaction_invoke_request_certificate()
而不是此函数。
since: 2.40
Gio.TlsInteractionClass.request_certificate_finish
完成请求证书的用户交互请求。应在调用 g_tls_interaction_request_certificate_async()
完成回调后执行。
since: 2.40