private string MakeLoginMessage(LoginFailedEventArgs loginFailedEventArgs) { string message = loginFailedEventArgs.Message; if (string.IsNullOrEmpty(message)) { switch (loginFailedEventArgs.Code) { case LoginCallbackCode.IM_LOGINFAIL_NETWORK: message = "登录超时"; goto Label_00C3; case LoginCallbackCode.IM_LOGINFAIL_SERVER_REFUSE: message = "密码错误,服务器拒绝"; goto Label_00C3; case LoginCallbackCode.IM_LOGINFAIL_VERSION_OVERDUE: message = "客户端版本过期"; goto Label_00C3; case LoginCallbackCode.IM_LOGINFAIL_SERVER_MAINTENANCE: message = "服务器正在维护"; goto Label_00C3; case LoginCallbackCode.IM_LOGINFAIL_SERVER_BUSY: message = "服务器忙"; goto Label_00C3; case LoginCallbackCode.IM_LOGINFAIL_FORCE_NEWCRYPT: message = "服务器要求使用新加密方法登录"; goto Label_00C3; case LoginCallbackCode.IM_LOGINFAIL_CANCEL: message = "用户取消登录"; goto Label_00C3; case LoginCallbackCode.IM_LOGINFAIL_OTHER: message = "发生未知错误"; goto Label_00C3; case LoginCallbackCode.IM_LOGINFAIL_EXISTSAMEAPP: message = string.Format("您已登录{0},不能重复登录。", this.accounts.Text); goto Label_00C3; case LoginCallbackCode.IM_LOGINFAIL_PWD_EXPIRE1: message = "密码过期"; goto Label_00C3; case LoginCallbackCode.IM_LOGINFAIL_PWD_EXPIRE2: message = "密码过期"; goto Label_00C3; } message = "发生未知错误"; } Label_00C3: return string.Format("{0}\n\n错误码: {1}", message, (int)loginFailedEventArgs.Code); }
private void HandleLogonResponse2(ParseData data) { DataReader dr = new DataReader(data.Data); int success = dr.ReadInt32(); if (success == 0) { OnLoginSucceeded(BaseEventArgs.GetEmpty(data)); Product product = Product.GetByProductCode(m_settings.Client); if (product.UsesUdpPing) { BncsPacket pck = new BncsPacket((byte)BncsPacketId.UdpPingResponse); pck.InsertDwordString("bnet"); Send(pck); } EnterChat(); } else { LoginFailureReason reason = LoginFailureReason.Unknown; switch (success) { case 1: // account DNE reason = LoginFailureReason.AccountDoesNotExist; break; case 2: // invalid password reason = LoginFailureReason.InvalidAccountOrPassword; break; case 6: // account closed reason = LoginFailureReason.AccountClosed; break; } LoginFailedEventArgs args = new LoginFailedEventArgs(reason, success, dr.ReadCString()) { EventData = data }; OnLoginFailed(args); } }
public void OnLoginFailed(LoginFailedEventArgs e) { m_host.OnLoginFailed(e); }
private void HandleLogonResponse(ParseData data) { DataReader dr = new DataReader(data.Data); int status = dr.ReadInt32(); if (status == 1) { OnLoginSucceeded(BaseEventArgs.GetEmpty(data)); Product product = Product.GetByProductCode(m_settings.Client); if (product.UsesUdpPing) { BncsPacket pck = new BncsPacket((byte)BncsPacketId.UdpPingResponse); pck.InsertDwordString("bnet"); Send(pck); } EnterChat(); } else { LoginFailedEventArgs args = new LoginFailedEventArgs(LoginFailureReason.InvalidAccountOrPassword, status) { EventData = data }; OnLoginFailed(args); } }