本文整理汇总了C#中XmlData.WriteElementRoot方法的典型用法代码示例。如果您正苦于以下问题:C# XmlData.WriteElementRoot方法的具体用法?C# XmlData.WriteElementRoot怎么用?C# XmlData.WriteElementRoot使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XmlData
的用法示例。
在下文中一共展示了XmlData.WriteElementRoot方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: HandleAuthKeyData
public static void HandleAuthKeyData(StsPacket packet, StsSession session)
{
var keyData = new BinaryReader(new MemoryStream(Convert.FromBase64String(packet["KeyData"].ToString())));
var a = keyData.ReadBytes(keyData.ReadInt32());
var m = keyData.ReadBytes(keyData.ReadInt32());
session.SecureRemotePassword.CalculateU(a);
session.SecureRemotePassword.CalculateClientM(a);
if (session.SecureRemotePassword.ClientM.Compare(m))
{
session.SecureRemotePassword.CalculateServerM(m, a);
session.ClientCrypt = new SARC4();
session.ClientCrypt.PrepareKey(session.SecureRemotePassword.SessionKey);
session.State = 1;
var SKeyData = new BinaryWriter(new MemoryStream());
SKeyData.Write(session.SecureRemotePassword.ServerM.Length);
SKeyData.Write(session.SecureRemotePassword.ServerM);
var reply = new StsPacket(StsReason.OK, packet.Header.Sequence);
var xmlData = new XmlData();
xmlData.WriteElementRoot("Reply");
xmlData.WriteElement("KeyData", Convert.ToBase64String(SKeyData.ToArray()));
reply.WriteXmlData(xmlData);
session.Send(reply);
}
else
{
session.Account = null;
var reply = new StsPacket(StsReason.ErrBadPasswd, packet.Header.Sequence);
reply.WriteString("<Error code=\"11\" server=\"0\" module=\"0\" line=\"0\"/>\n");
session.Send(reply);
}
}
示例2: HandleGameAccountListMyAccounts
public static void HandleGameAccountListMyAccounts(StsPacket packet, StsSession session)
{
var userId = uint.Parse(packet["UserId"].ToString());
if (userId == session.Account.Id)
{
var reply = new StsPacket(StsReason.OK, packet.Header.Sequence);
var xmlData = new XmlData();
// Only 1 GameAccount supported for now.
xmlData.WriteElementRoot("Reply");
xmlData.WriteCustom("<GameAccount>\n");
xmlData.WriteElement("Alias", $"{session.Account.GameAccounts[0].Alias}");
xmlData.WriteElement("Created", "");
xmlData.WriteCustom("</GameAccount>\n");
reply.WriteXmlData(xmlData);
session.Send(reply);
}
}
示例3: HandleAuthLoginFinish
public static void HandleAuthLoginFinish(StsPacket packet, StsSession session)
{
// Server packets are encrypted now.
session.ServerCrypt = new SARC4();
session.ServerCrypt.PrepareKey(session.SecureRemotePassword.SessionKey);
var reply = new StsPacket(StsReason.OK, packet.Header.Sequence);
var xmlData = new XmlData();
xmlData.WriteElementRoot("Reply");
xmlData.WriteElement("LocationId", "");
xmlData.WriteElement("UserId", session.Account.Id.ToString());
xmlData.WriteElement("UserCenter", "");
xmlData.WriteElement("UserName", session.Account.LoginName);
xmlData.WriteElement("AccessMask", "");
xmlData.WriteElement("Roles", "");
xmlData.WriteElement("Status", "");
reply.WriteXmlData(xmlData);
session.Send(reply);
}
示例4: HandleAuthLoginStart
public static void HandleAuthLoginStart(StsPacket packet, StsSession session)
{
// Can be an email or user name.
var loginName = packet["LoginName"].ToString();
session.Account = DB.Auth.Single<Account>(a => a.Email == loginName);
// Support for email only.
if (loginName != null && session.Account != null)
{
session.SecureRemotePassword = new SRP6a(session.Account.Salt, loginName, session.Account.PasswordVerifier);
session.SecureRemotePassword.CalculateB();
var keyData = new BinaryWriter(new MemoryStream());
keyData.Write(session.SecureRemotePassword.S.Length);
keyData.Write(session.SecureRemotePassword.S);
keyData.Write(session.SecureRemotePassword.B.Length);
keyData.Write(session.SecureRemotePassword.B);
var reply = new StsPacket(StsReason.OK, packet.Header.Sequence);
var xmlData = new XmlData();
xmlData.WriteElementRoot("Reply");
xmlData.WriteElement("KeyData", Convert.ToBase64String(keyData.ToArray()));
reply.WriteXmlData(xmlData);
session.Send(reply);
}
else
{
// Let's use ErrBadPasswd instead of ErrAccountNotFound.
var reply = new StsPacket(StsReason.ErrBadPasswd, packet.Header.Sequence);
reply.WriteString("<Error code=\"11\" server=\"0\" module=\"0\" line=\"0\"/>\n");
session.Send(reply);
}
}
示例5: HandleAuthRequestGameToken
public static void HandleAuthRequestGameToken(StsPacket packet, StsSession session)
{
if (DB.Auth.Update<Account>(a => a.Id == session.Account.Id, a => a.Online.Set(true)))
{
var reply = new StsPacket(StsReason.OK, packet.Header.Sequence);
var xmlData = new XmlData();
xmlData.WriteElementRoot("Reply");
xmlData.WriteElement("Token", "");
reply.WriteXmlData(xmlData);
session.Send(reply);
}
else
session.Dispose();
}