Exemplo n.º 1
0
        AuthData ShowLogonDialog()
        {
            Trace.WriteLine("Entering RTCPresence.ShowLogonDialog");

            LogonDialog dlg = new LogonDialog();

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                AuthData authData = new AuthData();

                authData.Uri       = dlg.Uri;
                authData.Server    = dlg.Server;
                authData.Transport = dlg.Transport;
                return(authData);
            }

            return(null);
        }
Exemplo n.º 2
0
        public AuthData ShowAuthDialog()
        {
            Trace.WriteLine("Entering RTCPresence.ShowAuthDialog");

            AuthDialog dlg = new AuthDialog();

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                AuthData authData = new AuthData();

                authData.Uri      = dlg.Uri;
                authData.Account  = dlg.Account;
                authData.Password = dlg.Password;

                return(authData);
            }

            return(null);
        }
        public void DoLogOn(AuthData authData)
        {
            Trace.WriteLine("Entering RTCPresenceCore.DoLogOn");

            if (authData == null || !authData.IsValid())
            {
                this.presenceUI.OnLoggedOff();
                return;
            }

            if (this.profile != null)
            {
                Trace.WriteLine("Already logged on");
                return;
            }

            Trace.WriteLine(authData);

            int lTransport = 0;

            try
            {
                if (authData.Transport != null)
                {
                    if (authData.Transport == "UDP")
                    {
                        lTransport = RTCConst.RTCTR_UDP;
                    }
                    else if (authData.Transport == "TCP")
                    {
                        lTransport = RTCConst.RTCTR_TCP;
                    }
                    else if (authData.Transport == "TLS")
                    {
                        lTransport = RTCConst.RTCTR_TLS;
                    }
                }

                this.client.GetProfile(
                    null,           // bstrUserAccount
                    null,           // bstrUserPassword
                    authData.Uri,        // bstrUserURI
                    authData.Server,     // bstrServer
                    lTransport,     // lTransport
                    0               // lCookie
                    );
            }
            catch (COMException ex1COM)
            {
                Trace.WriteLine("COMException " + ex1COM.Message);

                this.presenceUI.OnLoggedOff();
            }
        }
Exemplo n.º 4
0
        void OnRTCRegistrationStateChangeEvent(IRTCRegistrationStateChangeEvent registerEvent)
        {
            Trace.WriteLine("Entering RTCPresenceCore.OnRTCRegistrationStateChangeEvent "
                            + registerEvent.State);

            switch (registerEvent.State)
            {
            case RTC_REGISTRATION_STATE.RTCRS_UNREGISTERING:
                this.presenceUI.OnLoggingOff();
                break;

            case RTC_REGISTRATION_STATE.RTCRS_NOT_REGISTERED:
                this.DoDisablePresence();
                this.presenceUI.OnLoggedOff();
                break;

            case RTC_REGISTRATION_STATE.RTCRS_REGISTERING:
                this.presenceUI.OnLoggingOn();
                break;

            case RTC_REGISTRATION_STATE.RTCRS_REGISTERED:
                this.presenceUI.OnLoggedOn();
                break;

            case RTC_REGISTRATION_STATE.RTCRS_REJECTED:
            case RTC_REGISTRATION_STATE.RTCRS_ERROR:
            {
                int statusCode = registerEvent.StatusCode;

                Trace.WriteLine("RTCRS_REJECTED/ERROR " + statusCode);

                // Logon failed. Most likely the server could no be found,
                // or the user needs to authenticate.
                if ((statusCode == RTCConst.RTC_E_STATUS_CLIENT_UNAUTHORIZED) ||
                    (statusCode == RTCConst.RTC_E_STATUS_CLIENT_PROXY_AUTHENTICATION_REQUIRED) ||
                    (statusCode == RTCConst.RTC_E_STATUS_CLIENT_FORBIDDEN) ||
                    (statusCode == RTCConst.RTC_E_STATUS_CLIENT_NOT_FOUND))
                {
                    AuthData authData = this.presenceUI.ShowAuthDialog();

                    if (authData != null && authData.IsValid())
                    {
                        this.DoAuth(authData.Uri, authData.Account, authData.Password);
                    }
                    else
                    {
                        this.DoLogOff();
                        this.DoDisablePresence();
                        this.presenceUI.OnLoggedOff();
                        // If we were logging on the show error
                        if (registrationState == RTC_REGISTRATION_STATE.RTCRS_REGISTERING)
                        {
                            this.presenceUI.ShowMessage("Logon failed!", "Warning");
                        }
                        return;
                    }
                }
                else
                {
                    // Logon failed
                    this.DoLogOff();
                    this.DoDisablePresence();
                    this.presenceUI.OnLoggedOff();
                    // If we were logging on the show error
                    if (this.registrationState == RTC_REGISTRATION_STATE.RTCRS_REGISTERING)
                    {
                        this.presenceUI.ShowMessage("Logon failed!", "Warning");
                    }
                    return;
                }
            }
            break;

            case RTC_REGISTRATION_STATE.RTCRS_LOGGED_OFF:
                // The server has removed the registration for this profile.
                // Incoming requests are no longer forwarded.
                this.DoLogOff();
                this.presenceUI.OnLoggingOff();
                break;

            case RTC_REGISTRATION_STATE.RTCRS_LOCAL_PA_LOGGED_OFF:
                // The server has revoked the status as a presence agent for
                // this user. Incoming presence subscriptions are no longer
                // forwarded and our presence status is no longer visible to
                // others from this client.
                break;

            case RTC_REGISTRATION_STATE.RTCRS_REMOTE_PA_LOGGED_OFF:
                // The client that was the presence agent for this user has
                // logged off. It may be possible to register as a presence
                //agent from this client.
                break;

            default:
                break;
            }

            this.registrationState = registerEvent.State;
        }
Exemplo n.º 5
0
        AuthData ShowLogonDialog()
        {
            Trace.WriteLine("Entering RTCPresence.ShowLogonDialog");

            LogonDialog dlg = new LogonDialog();

            if (dlg.ShowDialog() == DialogResult.OK )
            {
                AuthData authData = new AuthData();

                authData.Uri = dlg.Uri;
                authData.Server = dlg.Server;
                authData.Transport = dlg.Transport;
                return authData;
            }

            return null;
        }
Exemplo n.º 6
0
        public AuthData ShowAuthDialog()
        {
            Trace.WriteLine("Entering RTCPresence.ShowAuthDialog");

            AuthDialog dlg = new AuthDialog();

            if (dlg.ShowDialog() == DialogResult.OK )
            {
                AuthData authData = new AuthData();

                authData.Uri = dlg.Uri;
                authData.Account = dlg.Account;
                authData.Password = dlg.Password;

                return authData;
            }

            return null;
        }