Autentificación con credenciales remotas

Hola,

Mi problema viene porque tengo los credenciales de usuarios en una especie de marco común (otra web distinta), para que varias webs utilicen los mismos datos de usuario.

He estado mirando la parte de autentificación en otro proyecto que tengo y lo hacia de la siguiente forma


 public function authenticate() {

        $user = Usuario::model()->findByAttributes(array('usuario' => $this->username));

        if ($user === null) {

        ....



donde Usuario es la clase modelo que gestiona la tabla usuarios, mi problema es que ese modelo está en otra aplicación, ¿Es posible conectar los usuarios de esta forma?

Gracias de antemano.

Edito----------------

He estado haciendo avances pero nada, al hacer login me aparece la típica página en blanco, he hecho lo siguiente:

He creado modelos de las tablas de los usuarios (de la otra base de datos)

Me he creado mi propio active record, aqui lo muestro


class MyActiveRecord extends CActiveRecord {

  

    private static $dbmarco = null;

 

    protected static function getMarcoDbConnection()

    {

        if (self::$dbmarco !== null)

            return self::$dbmarco;

        else{

            self::$dbmarco = Yii::app()->dbmarco;

            if (self::$dbmarco instanceof CDbConnection){

                self::$dbmarco->setActive(true);

                return self::$dbmarco;

            }

            else

                throw new CDbException(Yii::t('yii','Active Record requires a "db" CDbConnection application component.'));

            }

    }

He hecho que alguno de mis modelos hereden de él y he añadido la siguiente función


public function getDbConnection()

    	{return self::getMarcoDbConnection();

	}

este es mi código de authenticate


private $_id;


	public function authenticate(){	

		$user=Administrador::model()->findByAttributes(array('administrador' => $this->login));

		if ($user === null) {

			$this->errorCode = self::ERROR_USERNAME_INVALID;

		}

		else {

			if ($user->password !== $this->password) {

				$this->errorCode = self::ERROR_PASSWORD_INVALID;

			}

			else{

		                $this->_id = $user->id;

                		$this->errorCode = self::ERROR_NONE;

			}


		}

	return!$this->errorCode;


		//Faltan los roles

    	}

Alguien sabe donde anda el error?? me estoy volviendo loco

Al final rehice el modelo y funciona correctamente, se habría colado algo, para no poner otro hilo expongo mi nuevo problema aqui, que además está relacionado.

Tengo tres tipos de usuario, Administrador, Profesor y Alumno, como cada uno de ellos tiene sus propios atributos los tengo en distintas tablas en la base de datos, el siguiente código me vuelve a dejar con una página en blanco, lo curioso es que si dejo solo un usuario lo hace correctamente, alguien ve algún fallo que haya pasado por alto??





	private $_id;


	public function authenticate()

	{	

		$user=Administrador::model()->findByAttributes(array('login' => $this->username));

		if ($user === null) 

		{

			$user=Alumnos::model()->findByAttributes(array('login' => $this->username));

			if ($user === null)

			{

				$user=Profesores::model()->findByAttributes(array('login' => $this->username));

				if ($user === null)

				{

					$this->errorCode = self::ERROR_USERNAME_INVALID;

				}//if profesores

				//Profesores

				else

				{

					if ($user->password !== $this->password)

					{

						$this->errorCode = self::ERROR_PASSWORD_INVALID;

					}

					else

					{

						$this->_id  $user->id;

						$this->errorCode = self::ERROR_NONE;

					}

				}//else profesores

			}//if alumnos

			//Alumnos

			else

			{

				if ($user->password !== $this->password)

				{

					$this->errorCode = self::ERROR_PASSWORD_INVALID;

				}

				else

				{

						$this->_id  $user->id;

						$this->errorCode = self::ERROR_NONE;	

				}


			}//else alumnos

		}//if admin

		//Administrador

		else 

		{

			if ($user->password !== $this->password) 

			{

				$this->errorCode = self::ERROR_PASSWORD_INVALID;

			}

			else

			{

		               $this->_id = $user->id;

                		$this->errorCode = self::ERROR_NONE;

			}

		}//else admin


	return!$this->errorCode;


		//Faltan los roles

   }//funcion authenticate


	public function getId() 

	{

        	return $this->_id;

	}