Platform SDK: Logon Authentication

Initializing the Security Package

Once the DLL has been loaded, additional setup steps enable SSPI for the rest of the application.

Note  Beginning with Windows 2000, a special Negotiate package can be used where agreement between client and server about which security package to use is done behind the scenes. If the Negotiate package is not used, the client and server must agree on the specific security package to use before performing the additional setup steps below.

These steps are necessary before using SSPI:

  1. A pointer to the initialization function must be acquired.

    Both the client and server call GetProcAddress to get a pointer to the initialization function, InitSecurityInterface.

  2. The initialization function must be called to obtain the address of the security function table.

    The client and server use the pointer returned by GetProcAddress to call InitSecurityInterface for a pointer to a SecurityFunctionTable dispatch table. This table contains pointers to callback functions declared in Sspi.h. These pointers provide access to the DLL's implementations of the various SSPI functions.

  3. Information must be obtained about the supported security packages.

    While most applications use security packages that support default or common capabilities, security packages can have unique capabilities of interest to the application. An application needing special capabilities can use a package that offers those capabilities. For more information, see Getting Information About Security Packages.

At this point, the application has successfully initialized an SSP and chosen a security package with sufficient capabilities.