简体   繁体   English

获取QuickFix / n的会话属性(用户名和密码)

[英]Getting Session Properties (Username and Password) for QuickFix/n

I have put my user name and password on the FIX configuration file. 我已将我的用户名和密码放在FIX配置文件中。 So I must think I should be able to get User name and passwords from some internal variable like session variable or SessionSetting variable or session.SessionDataDictionary or some other variable. 所以我必须认为我应该能够从一些内部变量获取用户名和密码,如会话变量或SessionSetting变量或session.SessionDataDictionary或其他一些变量。 However, I did not find any straight forward solution to get Username and Password from internal variable. 但是,我没有找到任何从内部变量获取用户名和密码的直接解决方案。

[SESSION]
BeginString=FIX.4.4
SenderCompID= xxxxx
Username= xxxx
Password= xxxx

Probably this is very doable, logically speaking. 从逻辑上讲,这可能是非常可行的。 However, neither anyone suggest to do this or I have not seen anyone doing this on google. 但是,没有人建议这样做,或者我没有看到有人在谷歌这样做。 Only code bit I found from google is this. 只有我从谷歌找到的代码位是这个。

String username = sessionSettings.getString(sessionId, "Username"); //only works for Java version of QuickFix

However above code is only working for Java Version of QuickFix and this method is not available in DotNet Version of QuickFix (ie QuickFix/n) 但是上面的代码仅适用于QuickFix的Java版本,并且DotF版本的QuickFix中没有此方法(即QuickFix / n)

getString(sessionId, "Username"); 

I am looking to achieve similar results for FIX 4.4 using QuickFix/n. 我希望使用QuickFix / n为FIX 4.4获得类似的结果。 This might be very simple task if someone is familiar with QuickFix. 如果有人熟悉QuickFix,这可能是非常简单的任务。 I will really appreciate your tips or advice. 我将非常感谢您的提示或建议。 I would not mind if you have some idea for Java or C++ version as they are all quite similar. 如果您对Java或C ++版本有所了解,我不介意它们都非常相似。 I just need to know in which variable this user name and password is stored and how can I get this using Csharp code. 我只需要知道这个用户名和密码存储在哪个变量中,以及如何使用Csharp代码获取此信息。

Thanks in advance. 提前致谢。

You are on the right track with String username = sessionSettings.getString(sessionId, "Username"); 你是在正确的轨道上使用String username = sessionSettings.getString(sessionId, "Username"); , but the method call in QuickFIX/n is slightly different. ,但QuickFIX / n中的方法调用略有不同。

The call is more like sessionSettings.Get(sessionId).GetString("Username"); 调用更像是sessionSettings.Get(sessionId).GetString("Username"); .

See this example: 看这个例子:

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

For reference, see the unit tests for SessionSettings . 有关参考,请参阅SessionSettings单元测试

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM