Acceso a SQL Server 2012 desde Android con Contraseñas

  • Respuestas:1
Daniel López Martínez
  • Posts del Foro: 1

10 oct. 2017 10:46:56 vía Web

Hola a todos, qué tal,

estoy buscando la forma de acceder desde una aplicación Android a una BBDD en SQL Server 2012 con un sistema de doble contraseña; una primera por Usuario envía a una u otra tabla y ya en cada tabla con la contraseña se le dan unos permisos u otros.

La aplicación en general la tengo, y las consultas que quiero hacer funcionan sobre una BBDD en local, pero el problema es que no sé cómo acceder a la BBDD remota respetando ese sistema de contraseñas.

Cualquier ayuda será siempre bien recibida. Gracias de antemano. Saludos

Contestar
Meme Zhukulento
  • Posts del Foro: 4

10 oct. 2017 20:03:44 vía Web

esto es un pequeño ejemplo de un login pero con mysql solo le tienes que adaptar a la de SQL server bueno espero haberte ayudado en algo

////////////////////////////////////// DATABASE.PHP////////////////////////////////////////////

error_reporting(E_ALL ^ E_DEPRECATED);

require_once 'db_config.php';

class Database
{
private static $db = null;
private static $pdo;

final private function __construct()
{
    try {
        self::getDb();
    } catch (PDOException $e) {
    }


}
public static function getInstance()
{
    if (self::$db === null) {
        self::$db = new self();
    }
    return self::$db;
}
public function getDb()
{
    if (self::$pdo == null) {
        self::$pdo = new PDO(
            'mysql:dbname=' . DB_DATABASE .';host=' . DB_SERVER .';port:63343;',
            DB_USER,
            DB_PASSWORD,

           array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")


        );
        self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }

    return self::$pdo;
}
final protected function __clone()
{
}

function _destructor()
{
    self::$pdo = null;
}

}

?>

///////////////// db_config.php/////////////////////
<?php

define('DB_USER', "root"); // Usuario
define('DB_PASSWORD', ""); // Password
define('DB_DATABASE', ""); // Nombre de la base de datos
define('DB_SERVER', "localhost"); // db server
?>
////////////////LOGIN.PHP///////////////////

require 'Database.php';


        class Registro{
    function _construct(){
    }

    public static function ObtenerTodosLosUsuarios(){
        $consultar = "SELECT * FROM login";

        $resultado = Database::getInstance()->getDb()->prepare($consultar);

        $resultado->execute();

        $tabla = $resultado->fetchAll(PDO::FETCH_ASSOC);

        return $tabla;

    }
    public static function ObtenerDatosPorId($id){
        $consultar ="SELECT id,password FROM login WHERE id = ?";
        $resultado = Database::getInstance()->getDb()->prepare($consultar);

        $resultado->execute(array($id));

        $tabla = $resultado->fetch(PDO::FETCH_ASSOC);

return $tabla;
}

}

?>
//////////////////////////////Login_GETID.php///////////////////
require 'Login.php';

if($_SERVER['REQUEST_METHOD']=='GET'){

    if(isset($_GET['id'])){
        $identificador = $_GET['id'];

        $respuesta = Registro::ObtenerDatosPorId($identificador);

$contenedor =array();
if($respuesta){
$contenedor["resultado"] = "CC";
$contenedor["datos"] = $respuesta;

            echo json_encode($contenedor);
        }else{
            echo json_encode(array('resultado' => 'El usuario no existe'));
        }
    }else{
        echo json_encode(array('resultado' => 'No tiene identificador'));
    }
}

?>

/////////////// ANDROID STUDIO LOGIN ////////////

import android.content.Intent;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;

import org.json.JSONException;
import org.json.JSONObject;

import co.com.memezhukulento.michattiemporeal.Mensajes.Mensajeria;

public class chatActivity extends AppCompatActivity {
private EditText eTusuario;
private EditText eTcontraseña;
private Button bTingresar;
private RequestQueue mRequest;
private VolleyRP volley;

private static  String IP ="localhost/ArchivosPHP/Login_GETID.php?id=";
private  String USER ="";
private String PASSWORD ="";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    volley = VolleyRP.getInstance(this);
    mRequest=volley.getRequestQueue();
    setContentView(R.layout.activity_chat);
    eTusuario =(EditText)findViewById(R.id.eTusuario);
    eTcontraseña =(EditText)findViewById(R.id.eTcontraseña);

    bTingresar = (Button)findViewById(R.id.bTingresar);

    bTingresar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            VerificarLogin(eTusuario.getText().toString().toLowerCase(),eTcontraseña.getText().toString().toLowerCase());
        }
    });
}
public void VerificarLogin(String user, String password){
   USER =user;
    PASSWORD=password;
    SolicitudJSON(IP+user);
}
public void SolicitudJSON(String URL){
    JsonObjectRequest solicitud = new JsonObjectRequest(URL,null, new Response.Listener<JSONObject>(){
        @Override
        public void onResponse(JSONObject datos) {
            VerificarPassword(datos);
        }
    },new Response.ErrorListener(){
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(chatActivity.this,"Ocurrio un error, por favor contactese con el administrador",Toast.LENGTH_SHORT).show();
        }
    });
    VolleyRP.addToQueue(solicitud,mRequest,this,volley);
}
public void VerificarPassword(JSONObject datos){
try {


    String estado =datos.getString("resultado");
    if (estado.equals("CC")){
         JSONObject Jsondatos=new JSONObject(datos.getString("datos")) ;
        String usuario =Jsondatos.getString("id");
        String contraseña =Jsondatos.getString("password");
        if (usuario.equals(USER) && contraseña.equals(PASSWORD)){
            Toast.makeText(this,"usted se ah logeado correctamente",Toast.LENGTH_SHORT).show();
            Intent i = new Intent(this,Mensajeria.class);
            startActivity(i);


        }else Toast.makeText(this,"contraseña incorrecta",Toast.LENGTH_SHORT).show();

//:v aqui puedo colocar mas cosas despues
}else {
Toast.makeText(this,estado,Toast.LENGTH_SHORT).show();
}
}catch (JSONException e) {}
}

}

Contestar