public Boolean ChangeUserPasswd(String authUser, String authPassword, String userLogin, String newPassword) { //Autentica para poder realizar a busca do usuário APIAccessToken accessToken = GetToken(authUser, authPassword); if ((accessToken != null) && (accessToken.IsValid)) { //Realiza a troca da senha String jData = "{\"apiver\": \"1.0\",\"method\": \"user.changepassword\",\"parameters\": {\"user\": \"" + userLogin + "\", \"password\": \"" + newPassword + "\",\"must_change\": false},\"auth\": \"" + accessToken.Authorization + "\",\"id\": \"1\"}"; APIChangePasswdResult ret = JsonWebRequest <APIChangePasswdResult>(urlAPI, jData, "application/json", null, "POST"); if (ret == null) { throw new Exception("Erro on change password"); } else if (ret.error != null) { String errMsg = ""; //Aqui pode ser tratado especificamente cada erro //Obs: Melhorar as mensagens if (ret.error.lowercase) { errMsg += "Letra minúscula não definida"; } if (ret.error.uppercase) { errMsg += "Letra maiúscula não definida"; } if (ret.error.number_char) { errMsg += "Tamanho mínimo da senha (mínimo 8 dígitos)"; } if (ret.error.numbers) { errMsg += "Número não definido"; } if (ret.error.symbols) { errMsg += "Caracteres especiais não definido"; } throw new Exception("Erro on change password: "******"")); } else if (ret.success == true) { //Senha trocada com sucesso return(true); } } else { //Erro ao realizar a autenticação return(false); } return(false); }
public void LoadFromFile() { System.Reflection.Assembly asm = System.Reflection.Assembly.GetAssembly(this.GetType()); String tokenFile = Path.GetFullPath(asm.Location) + ".apiToken"; if (!File.Exists(tokenFile)) { return; } String jData = File.ReadAllText(tokenFile, Encoding.UTF8); APIAccessToken item = IAMUserClass.Deserialize <APIAccessToken>(jData); this.access_token = item.access_token; this.create_time = item.create_time; this.expires_in = item.expires_in; }
private APIAccessToken GetToken(String userName, String userPassword) { APIAccessToken accessToken = new APIAccessToken(); accessToken.LoadFromFile(); //Verifica em cache se o token ainda e válido if (!accessToken.IsValid) { accessToken = new APIAccessToken(); try { String jData = "{\"apiver\": \"1.0\",\"method\": \"user.login\",\"parameters\": {\"user\": \"" + userName + "\", \"password\": \"" + userPassword + "\", \"userData\": false},\"id\": \"1\"}"; APIAuthResult ret = JsonWebRequest <APIAuthResult>(urlAPI, jData, "application/json", null, "POST"); if (ret == null) { accessToken.error = "Empty return"; return(accessToken); } else if (ret.error != null) { accessToken.error = ret.error.data + (ret.error.debug != null ? ret.error.debug : ""); return(accessToken); } else if (!String.IsNullOrEmpty(ret.result.sessionid)) { accessToken.access_token = ret.result.sessionid; accessToken.expires_in = ret.result.expires; accessToken.create_time = ret.result.create_time; //accessToken.SaveToFile(); } } catch (Exception ex) { accessToken.error = "Error on get API Auth 1.0 Token: " + ex.Message; return(accessToken); } } return(accessToken); }