The authentication-level constants represent authentication levels passed to various run-time functions. These levels are listed in order of increasing authentication. Each new level adds to the authentication provided by the previous level. If the RPC run-time library does not support the specified level, it automatically upgrades to the next higher supported level.
Uses the default authentication level for the specified authentication service.
Performs no authentication.
Authenticates only when the client establishes a relationship with a server.
Authenticates only at the beginning of each remote procedure call when the server receives the request. Does not apply to remote procedure calls made using the connection-based protocol sequences (those that start with the prefix "ncacn"). If the protocol sequence in a binding handle is a connection-based protocol sequence and you specify this level, this routine instead uses the RPC_C_AUTHN_LEVEL_PKT constant.
Authenticates only that all data received is from the expected client. Does not validate the data itself.
Authenticates and verifies that none of the data transferred between client and server has been modified.
Includes all previous levels, and ensures clear text data can only be seen by the sender and the receiver. In the local case, this involves using a secure channel. In the remote case, this involves encrypting the argument value of each remote procedure call.
Regardless of the value specified by the constant, ncalrpc always uses RPC_C_AUTHN_LEVEL_PKT_PRIVACY.