本文整理匯總了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);
}