How to access ACM username/password from Smart Client plugin

I’m trying to create a Smart Client plugin to extend the functionality of my ACM plugin (ie provide features not in the Access framework). In order to do this it would be nice if the user did not have to login to the access control system twice; once during smart client startup, and again for my plugin. I’m looking for a way to capture and re-use the login info that is sent from the smart client login screen to the event server ACM plugin in the ValidateUserCredentials method.

Since there didn’t appear to be any built-in way to access these credentials I thought I could just send it via MessageCommunication from within that method. This is problematic for a few reasons:

  1. The message is sent to the smart client before my smart client plugin has registered to receive it. I could probably work around this with a delay or an async method that keeps trying until the smart client plugin responds.

  2. It is sent over the network in clear text. That’s kind of a show-stopper. When the smart client initially sends the login info to the event server ACM plugin it gets encrypted.

So, is there a better way to do this or do I need to look into encrypting my MIP messages? If that is the only way, I don’t supposed the framework has any way to flag a message as secure so it gets encrypted?

To the first part, “it would be nice if the user did not have to login to the access control system twice”. The Access Control Smart Client Plugin, the one that handles the personalized logins to ACM systems is implemented internally as a MIP LoginPlugin (VideoOS.Platform.Client.LoginPlugin). We do not expose the credential information from plugins that implement LoginPlugin. So I think you will need to find another way.

For the “is there a better way to do this or do I need to look into encrypting my MIP messages”:

As of right now, you should encrypt all sensitive information yourself before

sending it via MIP messages. But it is something we are aware of, and we will look

into it.

Okay, I’ve written a basic plugin for both the event server and smart client so they do a handshake and exchange the credential information over encrypted MIP messages. But, the more I go down this road the more I realize I am going to be stuck re-implementing things that Milestone already has on the ACM side. For example, I’m trying to develop my own “Access Monitor” SC plugin to address several usability issues we have in the field. But now I have to send my own copy of every ACEvent to the Smart Client, credential photos, etc…

Is there any way to tap into the ACM system from the Smart Client at all? Certain MIP messages I can subscribe to? Anything would be helpful.

Unfortunately there are no public ACM related MIP messages you can subscribe to or in other way tap into the ACM system.