miércoles, 3 de abril de 2019

lunes, 1 de abril de 2019

ASP.NET MVC UrlAction variable con comillas

Al momento de crear un action con código de servidor, puede suceder que un parámetro enviado tenga comillas simples. Esto genera error de javascript.
Se puede resolver anteponiendo "\\" a la comilla, de la siguiente manera:

<a href="#" onclick="funcion('<%= e.Descripcion.Replace("'", "\\'") %>');">xxxx</a>

viernes, 22 de febrero de 2019

Conexión a VPN desde Windows 10

Una vez configurada la conexión a una VPN, puede ser necesario deshabilitar "access use default gateway on remote network" en las propiedades avanzadas de la conexión.
Con esto logramos que el cliente de VPN pueda acceder a internet desde su conexión local, sin tener que pasar forzosamente por la conexión de la VPN.




Si luego de desactivar el gateway x default de la VPN se pierde la conexión con la VPN, puede ser necesario agregar un ruteo hacia la VPN de la siguiente forma:

route -p add 172.10.10.0 mask 255.255.255.0 172.10.10.245 metric 3 if 52

El parámetro -p hace que el ruteo quede configurado en forma permanente.

jueves, 7 de febrero de 2019

Cómo cambiar "password Must Meet Complex Requirements option" en un Domain Controller



  1. In the Server Manager click on Tools and from the drop down click Group Policy Management
  2. Expand Forrest >> Domains >> Your Domain Controller.
  3. Right click on the Default Domain Policy and click on the Edit from the context menu.
  4. Now Expand Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Account Policies -> Password Policy
  5. Double-click on the Passwords Must Meet Complexity Requirements option in the right pane.
  6. Select Disabled  under define this policy setting:
  7. Click Apply then OK all the way out and close the GPO window.
  8. In order to refresh the policy type the following command: “gpupdate /force”  in the CMD window and click ENTER.


martes, 18 de diciembre de 2018

Linux / Docker / Kubernetes / GitLab

Linux Ubuntu (18.04.1 LTS)

- Fuente: http://processors.wiki.ti.com/index.php/How_to_Build_a_Ubuntu_Linux_host_under_VMware
- Bajar Ubuntu, versión server de: https://www.ubuntu.com/download/server
- Durante la instalación ofrece una cantidad de paquetes para instalar, dentro de ellos estaban Docker, Kubernetes, PosgreSQL. Los marcamos y se instalaron a continuación del Linux.

Para probar que la instalación de Docker es correcta:
- $ sudo docker run hello-world

Para configurar IP address
Fuente: https://websiteforstudents.com/configure-static-ip-addresses-on-ubuntu-18-04-beta/
IMPORTANTE: 
Editar el archivo de configuración:
- sudo nano /etc/netplan/50-cloud-init.yaml
  • IP: 172.10.10.247/24
  • Gateway: 172.10.10.1 (router Linksys)
  • Nameservers (DNS): 
    • 172.10.10.1
    • 8.8.8.8
Aplicar los cambios realizados:
- sudo netplan apply
Verificar la conexión:
- ifconfig
- ping –c3 8.8.8.8
- ping –c3 www.viainfo.com.ar

Kubernetes (microk8s)

- sudo snap install microk8s –classic

Node.Js

- sudo apt update
- sudo apt install nodejs npm
- nodejs –version

*** Se recomienda tomar un Snapshot de la máquina virtual antes de continuar.


Git Core (Client)???

- sudo apt-get install git-core
- git --version

GitLab

Fuente: https://about.gitlab.com/install/#ubuntu

- sudo apt-get update
   - Este comando puede tomar algún tiempo, conviene esperar un poco antes de continuar.

- sudo apt-get install -y curl openssh-server ca-certificates
   - Si en este punto devuelve un error de tipo "ubuntu could not get lock /var/lib/dpkg/lock - open (11 resource temporarily unavailable)", es posible que el comando anterior no haya terminado de ejecutarse o haya quedado alguna tarea pendiente.
   - Para ver los procesos en ejecución se puede ejecutar el siguiente comando:
      - ps aux | grep -i apt
      Si aparece ejecutando una tarea de tipo "apt.systemd.daily" quiere decir que se está ejecutando el apt-daily.service que se ejecuta cada 12 horas. En este caso conviene esperar a que termine de ejecutar, o reiniciar el sistema:
      - sudo reboot
      - sudo shutdown 0

- sudo apt-get install -y postfix
   - Aceptar parámetros x default e informar dominio "viainfo.com.ar"
   - Una vez instalado Postfix se pueden cambiar los parámetros editando el archivo de configuración y reiniciando el servicio:
      - sudo nano /etc/postfix/main.cf
      - service postfix reload

- curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash



*** Aquí nuevamente se recomienda tomar un Snapshot antes de continuar.


- sudo EXTERNAL_URL="http://gitlab.viainfo.com.ar" apt-get install gitlab-ee
   - Aquí dió varias veces el error "Unable to fetch some archives, maybe run apt-get update or try with --fix-missing". Para poder avanzar tuve que ejecutar reiteradamente la secuencia de comandos:
      - sudo apt-get update
      - sudo apt-get install --fix-missing
      - Origen: https://www.enmimaquinafunciona.com/pregunta/35620/que-apt-get---fix-missing-hacer-y-cuando-es-util
   - En Windows, configurar archivo "hosts" (normalmente en "C:\Windows\System32\drivers\etc") para que interprete la ruta "gitlab.viainfo.com.ar" agregando una línea:
      - 172.10.10.247      gitlab.viainfo.com.ar
   - Si hubiera que cambiar el EXTERNAL_URL una vez instalado:
      - Editar el archivo "/etc/gitlab/gitlab.rb"
         - sudo nano /etc/gitlab/gitlab.rb
         - external_url "http://gitlab.viainfo.com.ar"
      - Reconfigurar:
         - sudo gitlab-ctl reconfigure

- Installation and Configuration using omnibus package






martes, 11 de diciembre de 2018

Web API Rest con JWT en C# (ASP.Net)

Ver estos artículos publicados sobre el tema.

Los artículos de Santi Macias tienen como premisas:

  • JWT es útil para autenticar y autorizar usuarios para consumir servicios REST API.
  • El cliente tiene la responsabilidad de almacenar el JWT en algún lugar seguro, para utilizarlo en las llamadas al API.
  • Siempre debemos publicar nustro API mediante un certificado SSL (HTTPS) para encriptar el contenido entre el servidor y el cliente.
Guía de referencia JWT: https://self-issued.info/docs/draft-ietf-oauth-json-web-token.html
Proyecto completo en GitHub: https://github.com/santimacnet/WebAPI-Segura-JWT


Algunos otros ejemplos de código:


Para implementar JWT desde Angular

Exception Handling