Winapi 使用ODBC驱动程序在服务中实现kerberos委派

Winapi 使用ODBC驱动程序在服务中实现kerberos委派,winapi,odbc,kerberos,delegation,Winapi,Odbc,Kerberos,Delegation,我正在尝试扩展我编写的windows服务,以接受来自客户端的kerberos票证,然后将该票证委托给ODBC驱动程序,以便它可以使用它连接到另一台服务器 ODBC驱动程序在独立场景中与kerberos身份验证配合使用。也就是说,它可以为当前用户请求和转发票证。但在我的服务中,我可能同时与多个用户打交道。如何接受票证,以便在连接到ODBC驱动程序时发现并使用正确的用户票证 我能想到的一种可能性是通过使用票证创建一个新的流程作为所需的用户。但是,如果可能的话,我真的希望避免这种情况,因为它不适合我当

我正在尝试扩展我编写的windows服务,以接受来自客户端的kerberos票证,然后将该票证委托给ODBC驱动程序,以便它可以使用它连接到另一台服务器

ODBC驱动程序在独立场景中与kerberos身份验证配合使用。也就是说,它可以为当前用户请求和转发票证。但在我的服务中,我可能同时与多个用户打交道。如何接受票证,以便在连接到ODBC驱动程序时发现并使用正确的用户票证

我能想到的一种可能性是通过使用票证创建一个新的流程作为所需的用户。但是,如果可能的话,我真的希望避免这种情况,因为它不适合我当前服务的体系结构


注意:我的服务是用C/C++和Win32 api编写的,我找到了我自己问题的答案

在对安全上下文进行身份验证之后,我可以使用ImpersonateSecurityContext函数。这将导致当前线程作为启动安全上下文的客户端运行。通过该线程,我可以调用ODBC驱动程序的连接函数,它将作为正确的用户进行身份验证