MSMQMessage.IsAuthenticated2
Applies To: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista
(Introduced in MSMQ 3.0.) The IsAuthenticated2 property of the MSMQMessage object indicates whether the message was authenticated at the request of the sending application.
MSMQMessage.IsAuthenticated2 is a Boolean property that supersedes the non-Boolean MSMQMessage.IsAuthenticated property.
Data type: | Boolean |
Run-time access: | Read-only |
Property IsAuthenticated2 As Boolean
Property Value
A Boolean set to one of the values:
True (-1)
The sending application requested authentication. The destination queue manager authenticated the message when it accepted the message.
False (0)
The sending application did not request authentication. The destination queue manager did not attempt to authenticate the message when it accepted the message.
Remarks
IsAuthenticated2 is used by the receiving application to determine whether the sending application requested authentication (see also, MSMQMessage.ReceivedAuthenticationLevel. If authentication was requested and the message is in the queue, then the receiving application can assume that the message was authenticated.
Note
It is not possible to look at the properties of a message and determine if a message failed authentication. Messages that fail authentication are discarded and are not delivered to the queue.
Message Queuing can use three different types of digital signatures to authenticate non-SRMP messages: MSMQ 1.0 signatures, MSMQ 2.0 signatures, and multiple-destination digital signatures (introduced in MSMQ 3.0). By default, a computer running MSMQ 3.0 accepts all three types of signatures. The following registry entry, which is not present by default, specifies what type of signature is accepted by a receiving computer.
HKLM\SOFTWARE\Microsoft\MSMQ\Parameters\Security\RcvOnlyEnhMsgAuthn
To change the default behavior of an MSMQ 3.0 computer, set this entry to one of the following values.
To | Set the registry entry to |
---|---|
Accept MSMQ 1.0, MSMQ 2.0, and multiple-destination digital signatures on a computer running MSMQ 3.0 | 0 |
Accept MSMQ 2.0 and multiple-destination digital signatures on a computer running MSMQ 3.0 | 1 |
By default, a source computer uses only the MSMQ 1.0 signature to sign non-SRMP messages. Therefore, for compatibility, when you set this registry entry so that a receiving computer will not accept MSMQ 1.0 signatures, make sure that you reset the applicable registry entry on the source computer as well. For more information, see Digital Signature Registry Entries and MSMQMessage.AuthLevel.
IsAuthenticated2 supersedes MSMQMessage.IsAuthenticated and should be used whenever possible. IsAuthenticated2 returns Boolean values that are consistent with the Microsoft® Visual Basic® Boolean data type. Otherwise, both properties are functionally equivalent.
To check what type of digital signature was used to sign the message, the receiving application must look at the MSMQMessage.ReceivedAuthenticationLevel property of the message.
In C++ COM applications, you must use a smart pointer to the IMSMQMessage3 interface to expose the IsAuthenticated2 property.
Equivalent API Function Property
With API function calls, the equivalent property is PROPID_M_AUTHENTICATED.
Requirements
Windows NT/2000/XP: Included in Windows XP and Windows Server 2003.
Windows 95/98/Me: Unsupported.
Header: Declared in Mqoai.h.
Library: Use Mqoa.lib
See Also
MSMQMessage
MSMQMessage.ReceivedAuthenticationLevel
PROPID_M_AUTHENTICATED