public void InitView()
        {
            Boolean accessAvailable = !(View.isSystemOutOfOrder && !View.AllowAdminAccess);

            View.AllowAuthentication = accessAvailable;
            View.AllowSubscription   = !View.isSystemOutOfOrder && View.SubscriptionActive;
            if (!accessAvailable)
            {
                View.DisplaySystemOutOfOrder();
            }
            else
            {
                dtoUrlToken urlToken = null;
                if (View.HasUrlValues)
                {
                    urlToken = View.GetUrlToken(UrlService.GetActiveUrlIdentifiers());
                }
                if (urlToken != null && !String.IsNullOrEmpty(urlToken.Value))
                {
                    UrlProviderLogon(urlToken);
                }

                View.AllowRetrievePassword = accessAvailable;
                View.DisplayLogonInput();
            }
        }
Beispiel #2
0
        private void UrlProviderLogon(dtoUrlToken urlToken)
        {
            UrlAuthenticationProvider urlProvider = UrlService.GetPovider(urlToken.Identifier);

            if (urlProvider != null)
            {
                dtoUrlToken vToken = urlProvider.ValidateToken(urlToken);
                //UrlProviderResult result = urlProvider.ValidateToken(urlToken.Value);
                if (!String.IsNullOrEmpty(urlProvider.RemoteLoginUrl))
                {
                    View.SetExternalWebLogonUrl(urlProvider.RemoteLoginUrl);
                }
                else if (!String.IsNullOrEmpty(urlProvider.SenderUrl))
                {
                    View.SetExternalWebLogonUrl(urlProvider.SenderUrl);
                }

                //urlToken.DecriptedValue = urlProvider.GetTokenIdentifier(urlToken.Value);
                List <ExternalLoginInfo> users = UrlService.FindUserByIdentifier(vToken.DecriptedValue, urlProvider);

                switch (vToken.Evaluation.Result)
                {
                case UrlProviderResult.ValidToken:
                    if (users.Count == 1)
                    {
                        ExternalLogonManage(users[0], urlProvider);
                    }
                    else if (!String.IsNullOrEmpty(vToken.DecriptedValue))
                    {
                        View.GoToProfile(urlProvider.Id, vToken, lm.Comol.Core.BaseModules.ProfileManagement.RootObject.UrlProfileWizard(urlProvider.Id));
                    }
                    break;

                default:
                    int    idPerson = (users.Count == 1 && users[0].Person != null) ? users[0].Person.Id : 0;
                    String tokenUrl = RootObject.InvalidToken(idPerson, urlProvider.Id, vToken.Evaluation.Result);
                    //urlToken.FullDecriptedValue = urlProvider.FullDecryptToken(urlToken.Value);
                    View.DisplayInvalidToken(tokenUrl, idPerson, vToken, vToken.Evaluation.Result);
                    //if (!String.IsNullOrEmpty(urlProvider.RemoteLoginUrl))
                    //    View.GotoRemoteUrl(urlProvider.RemoteLoginUrl);
                    //else if (!String.IsNullOrEmpty(urlProvider.SenderUrl))
                    //    View.GotoRemoteUrl(urlProvider.SenderUrl);
                    break;
                }
            }
        }