Пример #1
0
        /// <summary>
        /// Accede alla pagina
        /// </summary>
        /// <param name="Mail">Mail utente</param>
        /// <param name="Password">Password accesso utente</param>
        /// In futuro potenzialmente usata come chiave per l'utilizzo via Web Service</param>
        /// <returns></returns>
        public void Enter(
            String Mail,
            String Password,
            String Token)
        {
            if (String.IsNullOrEmpty(Token))
            {
                Token = View.UrlToken;
            }

            Domain.Enums.ExternalUserValidateError err = Domain.Enums.ExternalUserValidateError.none;
            Domain.DTO.DTO_User User = service.UserValidateExternal(Mail, Password, Token, ref err);

            if (err == Domain.Enums.ExternalUserValidateError.none)
            {
                View.SetCurrentUser(User);
                RedirectAfterLogin(User.UserId);
            }
            else if ((err == Domain.Enums.ExternalUserValidateError.TokenEmpty ||
                      err == Domain.Enums.ExternalUserValidateError.TokenExpired ||
                      err == Domain.Enums.ExternalUserValidateError.TokenInvalid) &&
                     User != null && User.UserId > 0)
            {
                View.SetCurrentUser(User);
                View.ShowAccessError(err);
            }
            else
            {
                View.ShowAccessError(err);
            }
        }
Пример #2
0
        /// <summary>
        /// Valida la mail di un utente, in automatico al primo tentativo di accesso
        /// </summary>
        /// <param name="Mail">Mail utente</param>
        /// <param name="Code">Codice utente</param>
        /// <returns>Eventuali segnalazioni errori</returns>
        public Domain.DTO.DTO_User UserValidateExternal(
            String Mail,
            String Code,
            String Token,
            ref Domain.Enums.ExternalUserValidateError Err)
        {
            Err = Domain.Enums.ExternalUserValidateError.none;

            TicketUser User = Manager.GetAll <TicketUser>(u => u.mail == Mail || (u.Person != null && u.Person.Mail == Mail)).Skip(0).Take(1).ToList().FirstOrDefault();

            if (User == null || User.Id <= 0)
            {
                Err = Domain.Enums.ExternalUserValidateError.invalidMail;
                return(new Domain.DTO.DTO_User());
            }
            //else if (String.IsNullOrEmpty(User.Code))
            //{
            //    Err = Domain.Enums.ExternalUserValidateError.invalidCode;
            //    return new Domain.DTO.DTO_User();
            //}
            else if (User.Code != AuthenticationHelper.Encrypt(Code))
            {
                Err = Domain.Enums.ExternalUserValidateError.invalidCode;
                return(new Domain.DTO.DTO_User());
            }

            //Controllo Token
            if (User.MailChecked == false)
            {
                Domain.Enums.TokenValidationResult TokErr = this.TokenValidate(Token, User.Id, Domain.Enums.TokenType.Registration);

                switch (TokErr)
                {
                //case Domain.Enums.TokenValidationResult.UserNotFound
                case Domain.Enums.TokenValidationResult.TokenNotFound:
                    Err = Domain.Enums.ExternalUserValidateError.TokenEmpty;
                    //return new Domain.DTO.DTO_User();
                    break;

                case Domain.Enums.TokenValidationResult.InvalidFormat:
                    Err = Domain.Enums.ExternalUserValidateError.TokenInvalid;
                    //return new Domain.DTO.DTO_User();
                    break;

                case Domain.Enums.TokenValidationResult.Exired:
                    Err = Domain.Enums.ExternalUserValidateError.TokenExpired;
                    //return new Domain.DTO.DTO_User();
                    break;
                    //case Domain.Enums.TokenValidationResult.Validated:
                }
            }

            Boolean IsInternal = (User.Person != null);

            String LangCode = "";

            if (!String.IsNullOrEmpty(User.LanguageCode))
            {
                LangCode = User.LanguageCode;
            }
            else if (IsInternal)
            {
                Language lang = Manager.Get <Language>(User.Person.LanguageID);
                if (lang != null)
                {
                    LangCode = lang.Code;
                }
            }
            else
            {
                Language lang = Manager.GetDefaultLanguage();
                LangCode = lang.Code;
            }

            Domain.DTO.DTO_User Usr = new Domain.DTO.DTO_User
            {
                UserId       = User.Id,
                PersonId     = (IsInternal) ? User.Person.Id : -1,
                LanguageCode = LangCode,
                Mail         = (IsInternal) ? User.Person.Mail : User.mail,
                Name         = (IsInternal) ? User.Person.Name : User.Name,
                SName        = (IsInternal) ? User.Person.Surname : User.Sname,
                IsOwnerNotificationEnable = User.IsNotificationActiveUser
            };

            //UserId = User.Id;

            return(Usr);
        }