Actualizar modelo .edmx con los cambios de la base de datos

La realización de cambios en la base de datos debe reflejarse dentro del modelo generado en Visual Studio. Desde un cambio mínimo, por ejemplo un campo de una tabla determinada pasa a admitir valores nulos, a cualquier otro complejo de adición/modificación/eliminación de tablas, referencias, triggers, procedimientos, relaciones…

1.- Abrimos nuestro archivo edmx con el editor predeterminado de Visual Studio: ADO.NET Entity Data Model Designer y pulsamos con el botón derecho sobre una zona libre en la opción «Udate Model from Database»

2.- Una vez que tenemos nuestro modelo reflejado, actualizamos el fichero con extensión «IntranetModel.TT» pulsando con el botón derecho sobre ellos y seleccionado «Run custom tool»

3.- Lanzamos «Run custom tool» sobre el fichero «IntranetModel.context.TT»

En el caso de haber cambiado el namespace o el nombre del proyecto, deberemos renombrarlos de nuevo en el archivo CS correspondiente del context de la clase. Tambien es posible realizar cambios parciales en partes concretar del modelado desde «Model browser«.

NOTA 1: Si a pesar de ello, no se reflejan los cambios, podemos eliminar ambos ficheros y volver a añadir «Add code generation item» seleccionando la versión correspondiente de «EF 6.x DbContext Generator»

NOTA 2: En ocasiones al actualizar un tipo de dato, es posible que no se refleje correctamente en el modelo EDMX, por ejemplo, el paso de un campo de string a bintint (int64). Revise manualmente los posibles cambios y vuelve a realizar el proceso.

Aplicaciones Metro, seguridad y permisos de administrador

En varias ocasiones encuentras mensajes en equipos que no permiten la ejecución de programas por estar utilizando el usuario administrador predeterminado: «No podemos abrir X con la cuenta predeterminada de administrador. Inicia sesión con otra cuenta y prueba de nuevo»

Realmente un usuario de Windows siempre ha podido ejecutar cualquier aplicación pero desde Windows 8, aunque tu nombre de usuario durante la instalación sea otro, crea 2 cuentas adicionales: administrador e invitado.

Estas se utilizan para ejecutar el control de cuentas de usuario UAC, instalación de imágenes, servicios… las implicaciones de seguridad son muchas, como buena práctica general nunca debes ejecutar para tu uso diario bajo la cuenta de permisos de administrador, menos sobre la cuenta de administrador predeterminado.

La razón es sencilla y muy repetida, si existe un problema de seguridad se limitará a la zona que este accesible a esa cuenta. Si conociendo las implicaciones que supone y quieres seguir con ello, también puedes: Directiva de seguridad local -> Directivas Locales -> Opciones de seguridad -> Control de cuentas de usuario: ejecutar todos los administradores en Modo de aprobación de administrador (habilitar)

Nombres de servicios en Windows

En ocasiones las traducciones de algunos servicios de Inglés a Español en los nombres de los servicios de windows, tanto para servidores como para clientes son algo… peculiares y no siempre se ajustan… podemos contrastarlos con los nombres cortos. Mediante PowerShell sacamos el listado completo:

Get-Service | Sort-Object -Property DisplayName | Format-Table DisplayName, Name -AutoSize

En el caso de necesitar conocer que servicio, programa, proceso… tiene abierto un fichero determinado, podemos recurrir a la herramienta Process Explorer, pulsamos sobre «Find -> Find Handle or DLL…» con el nombre del fichero.

Una vez encontrado desde las propiedades podemos ver si tiene algún servicio asociado.

CRL: Lista de revocación de certificados

En ocasiones debemos configurar el acceso interno y externo a las listas de revocación de certificados con Entidades de Certificación de confianza, habitualmente autoemitidas. Si hemos comprado un certificado, estas estarán disponibles y no tendremos ente problema seguramente. En otros casos en los que obtenemos errores indicando que no es posible acceder a la lista de revocación de certificados (CRL), debemos comprobar:

  • El dominio en el que se publica esta accesible dentro de la red interna y desde fuera de ella.
  • Podemos navegar y acceder a la lista CRL via web
  • No aparecen errores relacionados en la Autoridad de certificación

Desde cualquier equipo con Windows esta disponible en la linea de comandos «certutil» en la que debemos añadir el parámetro con la URL que queramos verificar:

certutil -URL «http://ejemplo.mainmind.com:8682/CertEnroll/CA%20nombre%20compuesto.crl»

Seleccionamos el certificado CER y recuperamos las direcciones web del CRL, en este caso vemos que pese a poder navegar y acceder no es posible acceder…

Después de comprobar todos los pasos, activamos temporalmente la visualización/listado del servidor que contine los CRL y nos encontramos por fin con el error! El nombre de la CA con la que se publican es demasiado largo y con espacios, por lo que con la seguridad predeterminada de IIS no es posible acceder.

Es posible deshabilitar en la aplicación de IIS esta verificación, pero no es una práctica de seguridad recomendada. Por lo que otra opción sencilla sería acortar el nombre desde la CA en la configuración de extensiones, por ejemplo: «http://ejemplo.mainmind.com/listado.crl»

Volvemos a emitir e instalar el certificado, en el que aparecerá la nueva CRL y volvemos a verificar con certutil, ahora sin problemas de acceso:

 

 

Forzar redirección web HTTPS con IIS

En breve el navegador Chrome de Google mostrará las webs sin certificados mensajes de advertencia, además de relegarlos en su motor de búsqueda… para forzar desde Internet Information Server la redirección de toda las URLs debemos añadir en el archivo web.config:

<system.webserver>
    <rewrite>
      <rules>
        <rule name="Forzar HTTPS" enabled="true">
          <match url="(.*)" ignoreCase="true" />
          <conditions>
            <add input="{HTTPS}" pattern="off" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
<system.webserver>

 

Utilidades gratuitas para facilitar la emisión e instalación de certificados sobre IIS: