Comunidad de diseño web y desarrollo en internet online

Implementando setCredentials

Citar            
MensajeEscrito el 17 Ene 2006 12:16 pm
Hola. Tengo una duda con este código:

Código :

(PHP)

<?php

class SecuredConn
{
   function SecuredConn()
   {
      $this->methodTable = array(
         "welcome" => array(
         "description" => "validate function",
         "access" => "remote",
         "roles" => "admin"          
         )
      );
   }
        
   function _authenticate($user, $pass)
   {                    
      if ($user == "a" && $pass == "aa")
      {
         return "admin";
      }
      else
      {
         return false;
      }
   }
   function welcome() {
      return "bienvenido!!!!";      
   }
}
?>



Código :

(AS)

import mx.remoting.Service; 
import mx.services.Log; 
import mx.rpc.RelayResponder; 
import mx.rpc.FaultEvent; 
import mx.rpc.ResultEvent; 
import mx.remoting.PendingCall; 
// 
stop();
var sSecured:Service = new Service("http://localhost/project/amfphp/gateway.php", null, "SecuredConn", null, null); 
mx.remoting.debug.NetDebug.initialize(sSecured) 


function welcomeResult(rs:ResultEvent) { 
   trace(rs.result); 
} 
function welcomeFault(fl:FaultEvent) { 
   trace("Su usuario no esta validado"); 
   trace("Hubo un problema: "+fl.fault.faultstring); 
   trace("El código del error es: "+fl.fault.faultcode); 
   trace("Detalles: "+fl.fault.detail); 
} 

btnEntrar.onRelease = function() 
{
   svSecured.connection.setCredentials(tfUsuario.text, tfPassword.text);
   var pcWelcome:PendingCall = sSecured.welcome(); 
   pcWelcome.responder = new RelayResponder(this, "welcomeResult", "welcomeFault");
}



He colocado 2 text fields (tfUsuario y tfPassword) junto a un botón (btnEntrar). Al introducir "daniel" en usuario y "asfusion" en password... ¿por qué no me hace el trace de bienvenido al darle al botón?

Saludos! ^^

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 17 Ene 2006 01:12 pm
Hola sheer.
Bueno recién estoy empezando en estode php y AS; lo que trato es de interpretar los scripts.
Por por lo que entiendo es que Setcredentials, hace justamente eso; "setear y/o establecer las credenciales, o permisos" para acceder a la aplicación; en éste caso, según el tutorial http://www.asfusion.com/blog/?mode=entry&entry=A403427E-3048-2A53-705C00F65712375F, el acceso a la aplicación es válido sólo para el "rol del administrador"; es por eso que se predetermina tanto el user como "daniel" y el pass como "asfusion".

No te saldrá en el trace "bienvenido!!" a menos que el usuario ingrese en el formulario iguales datos a los declarados en SecuredConn.

Es decir, prueba "ingresando" con tus datos declarados; que en tu caso son: tfUsuario = "a"; tfPassword="aa".

Otra cosa, cómo envias estos datos? que función le das a "btnEntrar" ..? ; bueno espero haberte ayudado. suerte.. :wink:

Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 17 Ene 2006 01:25 pm
La verdad es que es el mismo código que hay en el tuto, sólo que incorporando un botón y dos textfields. En el primer mensaje ha habido un pequeño fallo, pues no escribo "daniel" ni "asfusion", sino que lo hago con los establecidos (puse "a" y "aa" para ir más rápido).

En principio la idea es sencilla, sólo que hay algo que no debo implementar bien (el tuto tal cual, si que funciona).

Saludos! ^^

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 17 Ene 2006 01:57 pm
te falta declarar el método _authenticate($user, $pass)
así:

Código :

$this->methodTable = array( 
         "welcome" => array( 
         "description" => "validate function", 
         "access" => "remote", 
         "roles" => "usuario"          
         ),          
         "_authenticate" => array( 
         "description" => "autentificación", 
         "access" => "private", 
         "arguments" => array ("user","pass") 
         ) 
      );
[/code]

Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 17 Ene 2006 04:29 pm
Hola Juce, no hace falta declarar el metodo _authenticate dentro de la tabla, unicamente se declaran los metodos restringidos. Otro detalle, se pueden establecer cuantos roles quieran dentro de un mismo metodo....miren lo que dice la documentacion de amfphp :


roles

Acceptable values: a string consisting of role names separated by commas
Required: no
Roles are used for authentication. If this field is set, the credentials of the calling movie must meet those defined in roles. See Authentication for details


documentacion :
http://amfphp.org/docs/methodtable.html


Por otro lado, tu error juce2005 es que se te escapo una "v" de mas en tu codigo...



btnEntrar.onRelease = function()
{
svSecured.connection.setCredentials(tfUsuario.text, tfPassword.text);
var pcWelcome:PendingCall = sSecured.welcome();
pcWelcome.responder = new RelayResponder(this, "welcomeResult", "welcomeFault");
}


Saludos!

Por tangamampilia

.GAIA Developer

961 de clabLevel


6 articulos

Genero:Masculino   Anime Bloggers

México, D.F.

safari
Citar            
MensajeEscrito el 17 Ene 2006 04:30 pm

tangamampilia escribió:


Por otro lado, tu error juce2005 es que se te escapo una "v" de mas en tu codigo...



btnEntrar.onRelease = function()
{
svSecured.connection.setCredentials(tfUsuario.text, tfPassword.text);
var pcWelcome:PendingCall = sSecured.welcome();
pcWelcome.responder = new RelayResponder(this, "welcomeResult", "welcomeFault");
}



aqui mas bien me referia a sheer

saludos!

Saludos!

Por tangamampilia

.GAIA Developer

961 de clabLevel


6 articulos

Genero:Masculino   Anime Bloggers

México, D.F.

safari
Citar            
MensajeEscrito el 17 Ene 2006 06:33 pm
He arreglado el código pero sigue sin funcionar. Aquí está:

Código :

(PHP)

<?PHP

class SecuredConn {

    function SecuredConn () {
         $this->methodTable = array (
                                 "welcome" => array(
                                                     "description" => "validate function",
                                                   "access" => "remote",
                                                   "roles" => "admin",
                                                   "arguments" => array()            
                                                   )
                                     );
    }
        
    function _authenticate($user, $password) {                    
         if ($user == "a" && $password == "aa") {
             return "admin";
         }
         else {
             return false;
         }
     }
     function welcome () {
        return "bienvenido!!!!";      
     }
}
?>



Código :

(AS)

import mx.remoting.Service; 
import mx.services.Log; 
import mx.rpc.RelayResponder; 
import mx.rpc.FaultEvent; 
import mx.rpc.ResultEvent; 
import mx.remoting.PendingCall; 

var sSecured:Service = new Service("http://localhost/project/amfphp/gateway.php", null, "SecuredConn", null, null); 
mx.remoting.debug.NetDebug.initialize(sSecured);


function welcomeResult(rs:ResultEvent) { 
   trace(rs.result); 
} 
function welcomeFault(fl:FaultEvent) { 
   trace("Su usuario no esta validado"); 
   trace("Hubo un problema: "+fl.fault.faultstring); 
   trace("El código del error es: "+fl.fault.faultcode); 
   trace("Detalles: "+fl.fault.detail); 
} 

btnEntrar.onRelease = function() 
{
   sSecured.connection.setCredentials(tfUsuario.text, tfPassword.text);
   var pcWelcome:PendingCall = sSecured.welcome(); 
   pcWelcome.responder = new RelayResponder(this, "welcomeResult", "welcomeFault");
}



No sé, me parece un código bien sencillo, a ver si podeis echarle un vistazo.

Saludos y gracias! ^^

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 17 Ene 2006 07:17 pm
hola tangamampilia, gracias por las aclaraciones...,ahora lo tengo un poquito más claro.

Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 17 Ene 2006 10:32 pm
que te aparece exactamente? viste que te da el NetConecction Debugger?

si te manda un error de que no hay acceso en el metodo es por los setCredentials....seria bueno que veas por ahi...

Por tangamampilia

.GAIA Developer

961 de clabLevel


6 articulos

Genero:Masculino   Anime Bloggers

México, D.F.

safari
Citar            
MensajeEscrito el 17 Ene 2006 11:44 pm

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 18 Ene 2006 12:48 am
um...manana lo veo, es que ahora ando como loco terminando una cosa...pero manana lo checo (y aprovecho para ver el archivo de Juce2005 que tambien tiene que ver con setCredentials)

saludos!

Por tangamampilia

.GAIA Developer

961 de clabLevel


6 articulos

Genero:Masculino   Anime Bloggers

México, D.F.

safari
Citar            
MensajeEscrito el 18 Ene 2006 06:15 pm
Hola sheer, quizas podemos ayudarnos mutuamente a enteder ésto de la autentificación, he encontrado ésto pero ...está en francés...
http://wiki.media-box.net/tutoriaux/flash/amfphp_securite_et_authentification; ojalá puedas verlo ...a lo mejor nos sirva..

espero respuesta a mi invitación... suerte :)

Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 18 Ene 2006 06:58 pm
a ve r prueba ésto..., prueba primero con un componente "button" simple, y de nombre de instancia le pones "entrarbtn".. y crea una caja de texto y le pones de nombre de instancia: "estado", por si las moscas en caso de que no 0obtengas trace..., se quedará con algún mensaje.

AS.:

Código :

import mx.remoting.Service; 
import mx.services.Log; 
import mx.rpc.RelayResponder; 
import mx.rpc.FaultEvent; 
import mx.rpc.ResultEvent; 
import mx.remoting.PendingCall; 

// 
var sSecured:Service = new Service("http://///tu direccion/gateway.php", null, "SecuredConn", null, null); 

mx.remoting.debug.NetDebug.initialize(sSecured); 
//mx.remoting.debug.NetDebug.trace() ;


btnEntrar.clickHandler = function() {
   checkForm();
};


var formListener:Object = new Object();
formListener.enter = function(evt) {
   checkForm();
};
tfUsuario.addEventListener("enter", formListener);
tfPassword.addEventListener("enter", formListener);


Selection.setFocus(tfUsuario);


function checkForm() {
   
   if (tfUsuario.text.length == 0) {      
      estado.text = "Please enter user name.";      
      Selection.setFocus(tfUsuario);
      
            
   }     
   else if (tfPassword.text.length == 0) {
      estado.text = "Please enter password.";
      Selection.setFocus(tfPassword);
         
   }
else {
sSecured.connection.setCredentials(tfUsuario.text,tfPassword.text);
var pcWelcome:PendingCall = sSecured.welcome(); 
pcWelcome.responder = new RelayResponder(this, "welcomeResult","welcomeFault");

}
}


function welcomeResult(rs:ResultEvent) {
   estdo.text="Bienvenido";;   
   trace(rs.result); 
} 
function welcomeFault(fl:FaultEvent) {   
   estado.text="El nombre de usuario o paswword incorrectos";
   Selection.setFocus(pass);
   trace("Su usuario no esta validado");   
   trace("Hubo un problema: "+fl.fault.faultstring); 
   trace("El código del error es: "+fl.fault.faultcode); 
   trace("Detalles: "+fl.fault.detail); } 
   
stop();


si quieres borras el stop del final, bueno me avisas..., nuevamente ..suerte.

Por juce2005

100 de clabLevel



 

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.