获取快速修复/n 的会话属性(用户名和密码)
本文关键字:用户 属性 密码 会话 获取 | 更新日期: 2023-09-27 18:32:45
我已将用户名和密码放在 FIX 配置文件上。所以我必须认为我应该能够从一些内部变量(如会话变量或会话设置变量或会话(中获取用户名和密码。SessionDataDictionary 或其他一些变量。但是,我没有找到任何直接的解决方案来从内部变量中获取用户名和密码。
[SESSION]
BeginString=FIX.4.4
SenderCompID= xxxxx
Username= xxxx
Password= xxxx
从逻辑上讲,这可能是非常可行的。但是,没有人建议这样做,或者我没有在谷歌上看到有人这样做。我从谷歌找到的唯一代码位是这个。
String username = sessionSettings.getString(sessionId, "Username"); //only works for Java version of QuickFix
但是,上面的代码仅适用于Java版本的QuickFix,并且此方法在DotNet版本的QuickFix(即QuickFix/n(中不可用。
getString(sessionId, "Username");
我希望使用 QuickFix/n 为 FIX 4.4 获得类似的结果。如果有人熟悉快速修复,这可能是非常简单的任务。我将非常感谢您的提示或建议。我不介意你是否对Java或C++版本有一些想法,因为它们都非常相似。我只需要知道此用户名和密码存储在哪个变量中,以及如何使用 Csharp 代码获取它。
提前谢谢。
您在 String username = sessionSettings.getString(sessionId, "Username");
上是正确的轨道,但 QuickFIX/n 中的方法调用略有不同。
电话更像是sessionSettings.Get(sessionId).GetString("Username");
.
请参阅此示例:
var configuration =
new System.Text.StringBuilder().AppendLine("[ DEFAULT ]")
.AppendLine("ConnectionType=initiator")
.AppendLine("[SESSION]")
.AppendLine("BeginString=FIX.4.4")
.AppendLine("SenderCompID=Sender")
.AppendLine("TargetCompID=Target")
.AppendLine("Username=Gandalf")
.AppendLine("Password=YouShallNotPass")
.ToString();
var settings = new SessionSettings(new System.IO.StringReader(configuration));
var session = new SessionID("FIX.4.4", "Sender", "Target");
var sender = settings.Get(session).GetString("SenderCompID"); // Returns Sender
var user = settings.Get(session).GetString("Username"); // Returns Gandalf
var pass = settings.Get(session).GetString("Password"); // Returns YouShallNotPass
有关参考,请参阅会话设置的单元测试。