Added user ID properties
Added an authentication request message
Added properties and primary constructor
Implemented marshal functionality
Added an error code for missing remote functionality
Implemented Handle()
Added an authentication challenge request message
Added a needed UserId property
Implemented marshal functionality
Added an authentication challenge response message
Implemented the Challenge property and primary constructor
Changed visibility of unmarshal constructor to internal
Implemented marshal functionality
Changed return type of GetAuthenticationChallenge()
Implemented Handle()
Added an Authenticate() method
Assigned user ID if authentication was successful
Set remote user ID on successful authentication