/// <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); } }
/// <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); }