本文整理汇总了C#中Mooege.Net.MooNet.MooNetClient.CheckAuthenticator方法的典型用法代码示例。如果您正苦于以下问题:C# MooNetClient.CheckAuthenticator方法的具体用法?C# MooNetClient.CheckAuthenticator怎么用?C# MooNetClient.CheckAuthenticator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mooege.Net.MooNet.MooNetClient
的用法示例。
在下文中一共展示了MooNetClient.CheckAuthenticator方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: HandleAuthResponse
public static void HandleAuthResponse(MooNetClient client, int moduleId, byte[] authMessage)
{
if (!OngoingAuthentications.ContainsKey(client)) return; // TODO: disconnect him also. /raist.
var srp6 = OngoingAuthentications[client];
byte[] A = authMessage.Skip(1).Take(128).ToArray(); // client's public ephemeral
byte[] M_client = authMessage.Skip(1 + 128).Take(32).ToArray(); // client's proof of session key.
byte[] seed = authMessage.Skip(1 + 32 + 128).Take(128).ToArray(); // client's second challenge.
var success = srp6.Verify(A, M_client, seed);
//if (Config.Instance.DisablePasswordChecks || success)
if (success)
{
client.SessionKey = srp6.SessionKey;
// send the logon proof.
var message = bnet.protocol.authentication.ModuleMessageRequest.CreateBuilder()
.SetModuleId(moduleId)
.SetMessage(ByteString.CopyFrom(srp6.LogonProof))
.Build();
client.MakeRPC(() =>
bnet.protocol.authentication.AuthenticationClient.CreateStub(client).ModuleMessage(null, message, callback => client.CheckAuthenticator()));
client.Account = AccountManager.GetAccountByEmail(srp6.Account.Email);
//if (client.Account.LoggedInClient != null)
// client.Account.LoggedInClient.Connection.Disconnect();
//client.Account.LoggedInClient = client;
}
else // authentication failed because of invalid credentals.
{
client.AuthenticationErrorCode = AuthenticationErrorCodes.InvalidCredentials;
//end authentication
client.AuthenticationComplete();
}
OngoingAuthentications.Remove(client);
}