Esempio n. 1
0
        private string GetSessionTicket(ref PwsProjectorServicesClient pwsProjectorServices, string accountCode, string userName, string password)
        {
            PwsAuthenticateRs rs = pwsProjectorServices.PwsAuthenticate(new PwsAuthenticateRq()
            {
                AccountCode = accountCode,
                UserName    = userName,
                Password    = password
            });

            string sessionTicket = rs.SessionTicket;

            //if request fails bounce out
            if (rs.Status != RequestStatus.Ok)
            {
                return(null);
            }

            //To prevent infinite recursion, only try to reconnect if RedirectUrl is different from current url
            if (rs.RedirectUrl != null && pwsProjectorServices.Endpoint.Address.Uri.AbsoluteUri.StartsWith(rs.RedirectUrl))
            {
                return(null);
            }

            //If a RedirectUrl was returned then your account data is on a different server. Retry with new url.
            if (rs.RedirectUrl != null)
            {
                Uri    uri        = new Uri(pwsProjectorServices.Endpoint.Address.Uri.ToString());
                string newUriText = rs.RedirectUrl + uri.LocalPath;
                pwsProjectorServices = new PwsProjectorServicesClient("BasicHttpBinding_IPwsProjectorServices", newUriText);
                string session = GetSessionTicket(ref pwsProjectorServices, accountCode, userName, password);
                return(session);
            }
            return(rs.SessionTicket);
        }
Esempio n. 2
0
        public string GetSessionTicket()
        {
            PwsAuthenticateRs rs = psc.PwsAuthenticate(new PwsAuthenticateRq()
            {
                AccountCode = accountCode,
                UserName    = userName,
                Password    = password
            });

            //If request fails bounce out
            if (rs.Status != RequestStatus.Ok)
            {
                return(null);
            }

            //To prevent infinite recursion, only try to reconnect if RedirectUrl is different from current url
            if (rs.RedirectUrl != null && psc.Url.StartsWith(rs.RedirectUrl))
            {
                return(null);
            }

            //If a RedirectUrl was returned then account data is on a different server. Retry with new url.
            if (rs.RedirectUrl != null)
            {
                Uri uri = new Uri(psc.Url);
                psc.Url = rs.RedirectUrl + uri.LocalPath;
                return(GetSessionTicket());
            }

            return(rs.SessionTicket);
        }
Esempio n. 3
0
        public bool AuthenticateUser(string accountCode, string userName, string password)
        {
            try
            {
                authenticationResponse = pwsProjectorServices.PwsAuthenticate(new PwsAuthenticateRq()
                {
                    AccountCode = accountCode,
                    UserName    = userName,
                    Password    = password
                });

                //If request fails bounce out;
                return(authenticationResponse.Status == RequestStatus.Ok && authenticationResponse.SessionTicket != null);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.StackTrace);
                return(false);
            }
        }
Esempio n. 4
0
        public string GetSessionTicket()
        {
            var authenticationRequest = new PwsAuthenticateRq()
            {
                AccountCode = accountCode,
                UserName    = userName,
                Password    = password
            };

            PwsAuthenticateRs authenticationResponse = psc.PwsAuthenticate(authenticationRequest);

            //If request fails bounce out
            if (authenticationResponse.Status != RequestStatus.Ok)
            {
                return(null);
            }

            //TODO: Fix retry

            ////To prevent infinite recursion, only try to reconnect if RedirectUrl is different from current url
            //if (authenticationResponse.RedirectUrl != null && psc.PwsGetDocumentDetails(new PwsGetDocumentDetailsRq {DocumentIdentity=new PwsDocumentRef() { } }).Document.DocumentUri != null)

            //{
            //    return null;
            //}

            //if(authenticationResponse.RedirectUrl != null && psc.document)

            ////If a RedirectUrl was returned then account data is on a different server. Retry with new url.
            //if (rs.RedirectUrl != null)
            //{
            //    Uri uri = new Uri(psc.Url);
            //    psc.Url = rs.RedirectUrl + uri.LocalPath;
            //    return GetSessionTicket();
            //}

            return(authenticationResponse.SessionTicket);
        }