public function dialog()
    {
        //if session has not started
        if (!session_id()) {
            //start session
            session_start();
        }
        
        //if they never tried
        if (!isset($_SESSION[self::UNAUTHORIZED])) {
            //first try
            $_SESSION[self::UNAUTHORIZED] = 1;
        } else {
            //more than one try
            $_SESSION[self::UNAUTHORIZED]++;
        }
        
        //if it's their first few tries
        if ($_SESSION[self::UNAUTHORIZED] < 3) {
            header(sprintf(self::HTTP_AUTH, $this->realm, uniqid(), md5($this->realm)));
            exit;
        }
        
        //let them try again
        unset($_SESSION[self::UNAUTHORIZED]);
        
        //you are unauthorized
        header(self::UNAUTHORIZED);
        
        //throw
        Exception::i()
            ->setMessage(self::UNAUTHORIZED)
            ->setType(self::ERROR_TYPE)
            ->trigger();
    }