public static string GetSignPassword(this ISession session) { string password = null; switch (session.WsUserName.ClientType) { case NTMinerAppType.MinerClient: password = ((IMinerClientSession)session).GetSignPassword(); break; case NTMinerAppType.MinerStudio: var userData = UserSet.GetUser(UserId.CreateLoginNameUserId(session.LoginName)); if (userData != null) { password = userData.Password; } break; default: break; } return(password); }
public static bool TryGetUser(string base64String, out WsUserName wsUserName, out UserData userData, out string errMsg) { wsUserName = null; userData = null; errMsg = string.Empty; if (string.IsNullOrEmpty(base64String)) { errMsg = $"{nameof(base64String)}为空"; return(false); } string json = Encoding.UTF8.GetString(Convert.FromBase64String(base64String)); wsUserName = VirtualRoot.JsonSerializer.Deserialize <WsUserName>(json); if (wsUserName == null) { errMsg = $"{nameof(base64String)}编码的json字符串格式错误"; return(false); } if (!wsUserName.IsValid()) { errMsg = "wsUserName提交的数据无效"; return(false); } userData = UserSet.GetUser(UserId.Create(wsUserName.UserId)); if (userData == null) { errMsg = $"用户{wsUserName.UserId}不存在"; return(false); } if (!userData.IsEnabled) { errMsg = $"用户{wsUserName.UserId}已被禁用"; return(false); } return(true); }
public static QueryClientsResponse QueryClientsForWs(QueryClientsForWsRequest request) { QueryClientsResponse response; if (request == null) { response = ResponseBase.InvalidInput <QueryClientsResponse>("参数错误"); } else { request.PagingTrim(); try { var user = UserSet.GetUser(UserId.CreateLoginNameUserId(request.LoginName)); if (user == null) { response = ResponseBase.InvalidInput <QueryClientsResponse>("用户不存在"); } else { var data = ClientDataSet.QueryClients( user, request, out int total, out CoinSnapshotData[] latestSnapshots, out int totalOnlineCount, out int totalMiningCount) ?? new List <ClientData>(); response = QueryClientsResponse.Ok(data, total, latestSnapshots, totalMiningCount, totalOnlineCount); } } catch (Exception e) { Logger.ErrorDebugLine(e); response = ResponseBase.ServerError <QueryClientsResponse>(e.Message); } } return(response); }