Não há resposta do banco
Olá pessoal, sou novo em c#, mas precisei fazer um webservice aqui e estou "dando cabeçada", consegui chegar na função de autenticação:
public Credential getAuthentication(String username, String password)
{
MySqlConnection connection = connector.getConnection(_db, _user, _pass);
DataSet dataset = new DataSet();
Credential credential = new Credential();
try
{
connection.Open();
}
catch (System.Exception e)
{
}
if (connection.State == ConnectionState.Open)
{
String SenhaMD5 = tokenizer.getTokenSenha(password);
string sqlQuery = "SELECT `UsuarioID`, `UsuarioAuthToken` " +
" FROM `" + _tabelaUsuarios + "` " +
" WHERE `UsuarioLogin` = '" + username + "' AND `UsuarioSenha` = '" + SenhaMD5 + "' " +
" LIMIT 1";
MySqlDataAdapter adapter = new MySqlDataAdapter(sqlQuery, connection);
adapter.Fill(dataset, "Tokens");
DataTableReader reader = dataset.CreateDataReader();
//reader.Read();
// Unsuccesfull login attempt
if (!reader.HasRows)
{
credential.hash = "0";
credential.user = "";
credential.error = "Nome de Usuario e/ou senha incorretos! (" + sqlQuery + " --> MD5: " + SenhaMD5 + ")";
}
// Succesfull login attempt
else
{
reader.Read();
String token = reader.GetValue(1).ToString();
// if a token hasn't been set to this user yet
if (token == "")
{
// create new token and update the database
token = tokenizer.getToken();
string insertTokenQuery = "UPDATE " + _tabelaUsuarios + " " +
" SET UsuarioAuthToken = '" + token + "' " +
" WHERE UsuarioLogin = '" + username + "' AND UsuarioSenha = '" + password + "' " +
" LIMIT 1";
MySqlCommand insertTokenCommand = new MySqlCommand(insertTokenQuery, connection);
int linesAffected = insertTokenCommand.ExecuteNonQuery();
if (linesAffected == 0)
{
credential.hash = "0";
credential.user = "";
credential.error = "Não foi possível acessar o banco de dados! Tente novamente.";
return credential;
}
}
credential.hash = token;
credential.user = reader.GetValue(0).ToString();
credential.error = "";
}
}
connection.Close();
return credential;
}
O problema é que, mesmo existindo o usuário na base de dados (copiei a sql gerada e rodei no banco), ele sempre cai no erro
if (!reader.HasRows)
Imagino que eu deva estar deixando passar algo simples... agradeço imensamente a ajuda.
Obrigado!
Discussão (4)
Carregando comentários...