I'm using QuickFIX and C# to create a FIX acceptor (server). I want the client (the FIX initiator) to logon using a username and password. However, I'm not sure how I can do that in QuickFIX.

By debugging into the QuickFIX source code I have discovered the following sequence of events:

* QuickFIX will call `Session::verify` to verify the logon.
* `Session::verify` will perform various checks of things like comp ID's and sequence numbers and at some point determine that the logon received is valid.
* `Session::verify` will then call the `Application::fromAdmin` callback which I assume is the natural place to customize things like logon.
* However, at this point the logon has already been determined to be OK by QuickFIX and a corresponding logon message will be returned by the acceptor when the callback returns.

How do I customize the FIX logon process in an acceptor? Is modifying the QuickFIX code my only option?