コード例 #1
0
        async void ExecuteIniciarSesionCommand()
        {
            UserDialogs.Instance.ShowLoading(AppResources.ShowLoadingTitle);
            SesionRespuesta sesionRespuesta = await _autApi.IniciarSesionAsync(null, new IniciarSesionRequestBody
            {
                Usuario = Usuario,
                Clave   = Clave
            });

            UserDialogs.Instance.HideLoading();

            if (sesionRespuesta.Codigo.Equals(RiskConstants.CODIGO_OK))
            {
                await _secureStorage.SetAsync(RiskConstants.ACCESS_TOKEN, sesionRespuesta.Datos.AccessToken);

                await _secureStorage.SetAsync(RiskConstants.REFRESH_TOKEN, sesionRespuesta.Datos.RefreshToken);

                var config = (Configuration)_autApi.Configuration;
                config.AccessToken = sesionRespuesta.Datos.AccessToken;

                App.Current.Properties[RiskConstants.IS_USER_LOGGED_IN] = true;
                await NavigationService.NavigateAsync("/NavigationPage/MainPage");
            }
            else
            {
                await UserDialogs.Instance.AlertAsync(sesionRespuesta.Mensaje);
            }
        }
コード例 #2
0
        public SesionRespuesta FinalizarSesion(int sesionId)
        {
            SesionRespuesta response = new SesionRespuesta
            {
                Usuario = usuarioDAO.FinalizarSesion(sesionId)
            };

            return(response);
        }
コード例 #3
0
        private SesionRespuesta FinalizarSesion(SesionPeticion sesionPeticion)
        {

            Servicio servicio = new Servicio();
            SesionRespuesta sesionRespuesta = servicio.FinalizarSesion(sesionPeticion);


            return sesionRespuesta;
        }
コード例 #4
0
        public SesionRespuesta IniciarSesion(string identificador, string contrasena, string ip)
        {
            Usuario usuario = usuarioDAO.IniciarSesion(identificador, contrasena, ip);

            usuario.Json = JsonConvert.SerializeObject(usuario);

            SesionRespuesta response = new SesionRespuesta
            {
                Usuario = usuario
            };

            return(response);
        }
コード例 #5
0
        private SesionRespuesta IniciarSesion()
        {

            SesionPeticion sesionPeticion = new SesionPeticion
            {
                Identificador = "Administrador",
                Contrasena = "Administrador123",
                IP = "127.0.0.1"
            };

            Servicio servicio = new Servicio();
            SesionRespuesta sesionRespuesta = servicio.IniciarSesion(sesionPeticion);

            return sesionRespuesta;
            
        }
コード例 #6
0
        // POST: Acceso/IniciarSesion
        //[HttpPost]
        public ActionResult IniciarSesion(Usuario usuario)
        {
            try
            {
                SesionPeticion peticion = new SesionPeticion
                {
                    Identificador = usuario.CorreoE,
                    Contrasena    = usuario.Contrasenia,
                    IP            = usuario.IP
                };

                if (peticion.IP == null)
                {
                    peticion.IP = "127.0.0.1";
                }

                Servicio        servicio  = new Servicio();
                SesionRespuesta respuesta = servicio.IniciarSesion(peticion);
                if (!respuesta.Cabecero.EsRespuestaExistosa())
                {
                    ViewBag.ErrorAcceso = respuesta.Cabecero.MensajeRespuesta;
                    return(View("~/Views/Usuarios/Acceso/Ingresar.cshtml"));
                }

                if (respuesta.Usuario.Rol.RolId == 1)
                {
                    ViewBag.UserJson = respuesta.Usuario.Json;
                    return(View("~/Views/Home/SuperAdministrador.cshtml"));
                }

                if (respuesta.Cabecero.EsRespuestaExistosa() && respuesta.Usuario.SesionId > 0)
                {
                    return(RedirectToAction("SeleccionarConsulta", "SubRegistro", new
                    {
                        userJson = respuesta.Usuario.Json
                    }));
                }
                else
                {
                    return(View("~/Views/Usuarios/Acceso/Ingresar.cshtml"));
                }
            }
            catch
            {
                return(View("~/Views/Usuarios/Acceso/Ingresar.cshtml"));
            }
        }
コード例 #7
0
        public ActionResult Contact2()
        {
            SesionRespuesta resultadoIniciarSesion = IniciarSesion();
            ViewBag.Message = "Resultados de servicio de iniciar Sesión " + JsonConvert.SerializeObject(resultadoIniciarSesion);

            SesionPeticion sesionPeticion = new SesionPeticion
            {
                Cabecero = new CabeceroPeticion
                {
                    SesionId = resultadoIniciarSesion.Usuario.SesionId
                }
            };

            SesionRespuesta resultadoFinalizarSesion = FinalizarSesion(sesionPeticion);
            ViewBag.Message = ViewBag.Message + "\n\n\n Resultados de servicio de Finalizar Sesión " + JsonConvert.SerializeObject(resultadoFinalizarSesion);


            return View();
        }
コード例 #8
0
        public ActionResult Salir(string userJson)
        {
            try
            {
                Usuario usuario = JsonConvert.DeserializeObject <Usuario>(userJson);
                usuario.Json     = userJson;
                ViewBag.UserJson = userJson;

                SesionPeticion peticion = new SesionPeticion();
                peticion.Cabecero          = new CabeceroPeticion();
                peticion.Cabecero.SesionId = usuario.SesionId;

                Servicio        servicio  = new Servicio();
                SesionRespuesta respuesta = servicio.FinalizarSesion(peticion);
                return(View("~/Views/Usuarios/Acceso/Salir.cshtml"));
            }
            catch
            {
                return(View("~/Views/Usuarios/Acceso/Salir.cshtml"));
            }
        }
コード例 #9
0
ファイル: App.xaml.cs プロジェクト: DamyGenius/risk
        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {
            containerRegistry.RegisterSingleton <IAppInfo, AppInfoImplementation>();
            containerRegistry.RegisterSingleton <IDeviceInfo, DeviceInfoImplementation>();
            containerRegistry.RegisterSingleton <ISecureStorage, SecureStorageImplementation>();
            containerRegistry.RegisterSingleton <IConnectivity, ConnectivityImplementation>();

            Configuration config = new Configuration();

            config.BasePath = "http://10.0.2.2:5000";
            // Configure API key authorization: RiskAppKey
            config.AddApiKey("Risk-App-Key", "azVd94zazPu/+q5ZHqoL1v6wccamHV3oWoALYWQK0Z8=");
            // Configure Bearer token for authorization: AccessToken
            config.AccessToken = string.Empty;

            containerRegistry.RegisterInstance <IReadableConfiguration>(config);
            containerRegistry.RegisterInstance <IAutApi>(new AutApi(config));
            containerRegistry.RegisterInstance <IGenApi>(new GenApi(config));
            containerRegistry.RegisterInstance <IMsjApi>(new MsjApi(config));
            containerRegistry.RegisterInstance <IRepApi>(new RepApi(config));

            containerRegistry.RegisterForNavigation <NavigationPage>();
            containerRegistry.RegisterForNavigation <MainPage, MainPageViewModel>();
            containerRegistry.RegisterForNavigation <LoginPage, LoginPageViewModel>();
            containerRegistry.RegisterForNavigation <NoConnectionPage, NoConnectionPageViewModel>();

            // Polly
            PolicyRegistry registry = new PolicyRegistry();
            var            authorizationEnsuringPolicy = Policy
                                                         .HandleResult <ApiException>(r => r.ErrorCode == 401 /*HttpStatusCode.Unauthorized*/)
                                                         .RetryAsync(1, async(outcome, retryNumber, context) =>
            {
                var autApi        = Container.Resolve <IAutApi>();
                var secureStorage = Container.Resolve <ISecureStorage>();

                // Busca Access Token
                string accessToken;
                try
                {
                    accessToken = await secureStorage.GetAsync(RiskConstants.ACCESS_TOKEN);
                }
                catch (Exception)
                {
                    accessToken = string.Empty;
                }

                // Busca Refresh Token
                string refreshToken;
                try
                {
                    refreshToken = await secureStorage.GetAsync(RiskConstants.REFRESH_TOKEN);
                }
                catch (Exception)
                {
                    refreshToken = string.Empty;
                }

                SesionRespuesta respuestaRefrescarSesion = null;
                try
                {
                    respuestaRefrescarSesion = await autApi.RefrescarSesionAsync(null, new RefrescarSesionRequestBody
                    {
                        AccessToken  = accessToken,
                        RefreshToken = refreshToken
                    });

                    if (respuestaRefrescarSesion.Codigo.Equals(RiskConstants.CODIGO_OK))
                    {
                        await secureStorage.SetAsync(RiskConstants.ACCESS_TOKEN, respuestaRefrescarSesion.Datos.AccessToken);
                        await secureStorage.SetAsync(RiskConstants.REFRESH_TOKEN, respuestaRefrescarSesion.Datos.RefreshToken);

                        var apiConfig      = (Configuration)autApi.Configuration;    // Aca en realidad hay que configurar todos los Api?
                        config.AccessToken = respuestaRefrescarSesion.Datos.AccessToken;

                        this.Properties[RiskConstants.IS_USER_LOGGED_IN] = true;
                    }
                    else
                    {
                        secureStorage.Remove(RiskConstants.ACCESS_TOKEN);
                        secureStorage.Remove(RiskConstants.REFRESH_TOKEN);

                        this.Properties[RiskConstants.IS_USER_LOGGED_IN] = false;
                        await NavigationService.NavigateAsync("/LoginPage");
                    }
                }
                catch (Exception)
                {
                    secureStorage.Remove(RiskConstants.ACCESS_TOKEN);
                    secureStorage.Remove(RiskConstants.REFRESH_TOKEN);

                    this.Properties[RiskConstants.IS_USER_LOGGED_IN] = false;
                    await NavigationService.NavigateAsync("/LoginPage");
                }
            }
                                                                     );

            registry.Add("AuthorizationEnsuringPolicy", authorizationEnsuringPolicy);
        }