Службы безопасности MSMQ

Синхронные сообщения RPC могут использовать любые функции безопасности, доступные во время выполнения RPC. Дополнительные сведения см. в разделе Безопасность .

Асинхронные вызовы [ message] не могут использовать безопасность RPC, так как между клиентом и сервером отсутствует подтверждение. На самом деле сервер может даже не работать во время вызова. Чтобы получить доступ к службам безопасности, предоставляемым службами очереди сообщений (MSMQ), клиентское приложение должно вызвать RpcBindingSetAuthInfo , чтобы контролировать уровень проверки подлинности и конфиденциальности для вызовов к серверу.

Серверное приложение может вызывать RpcBindingInqAuthClient из удаленного вызова процедуры, чтобы определить уровень безопасности для этого вызова. Сопоставление между константами безопасности RPC и безопасностью MSMQ показано в следующей таблице.

Уровень безопасности RPC Описание
RPC_AUTHN_LEVEL_NONE Вызов не проходит проверку подлинности или не шифруется.
RPC_AUTHN_LEVEL_PKT_INTEGRITY Проверка подлинности вызова выполняется с использованием безопасности MSMQ.
RPC_AUTHN_LEVEL_PKT_PRIVACY Вызов проходит проверку подлинности и шифруется при перемещении между клиентом и серверной очередью.

 

Сервер также может принудительно выполнять проверку подлинности и шифрование вызовов, вызвав RpcServerUseProtseqEpEx и задав флаги RPC_C_MQ_AUTHN_LEVEL_NONE, RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY и RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY в структуре RPC_POLICY .