Mar*_*age 7 c# quickfix fix-protocol
我正在使用QuickFIX和C#来创建一个FIX接受器(服务器).我希望客户端(FIX启动器)使用用户名和密码登录.但是,我不确定如何在QuickFIX中做到这一点.
通过调试QuickFIX源代码,我发现了以下事件序列:
Session::verify以验证登录.Session::verify 将执行各种检查,如comp ID和序列号,并在某些时候确定收到的登录是有效的.Session::verify然后将调用Application::fromAdmin回调,我认为这是自定义登录等内容的地方.如何在接受器中自定义FIX登录过程?修改QuickFIX代码是我唯一的选择吗?
如果您使用的是FIX 4.3或更高版本,则登录消息可以具有密码标记.如果您使用的是以前的版本,请将其设为自定义标记并将其添加到词典中.
在fromAdmin处理程序中,检查密码是否正确(从查找表或其他位置).如果不是,则抛出RejectLogon异常.如果没有抛出此异常,QuickFix将假设一切正常并记录用户.
示例(需要更多健全性检查):
public void fromAdmin(Message message, SessionID id)
{
var logon = message as QuickFix44.Logon;
if (logon != null)
{
string userName = logon.getUserName().getValue();
string expectedPassword = PasswordsByUser[userName];
string suppliedPassword = logon.getPassword().getValue();
if(expectedPassword != suppliedPassword)
throw new RejectLogon();
}
}
Run Code Online (Sandbox Code Playgroud)