jueves, 31 de diciembre de 2015

IIS 7 usuarios

Para cubrir las identidades que aparecen:

IIS_IUSRS:

Esto es análogo a la edad de IIS6 IIS_WPG grupo. Es un grupo integrado con la seguridad configurado de tal manera que cualquier miembro de este grupo puede actuar como una identidad de grupo de aplicaciones.

IUSR:

Esta cuenta es similar a la de edad IUSR_ local cuenta que era el valor predeterminado de usuario anónimo de IIS 5 y IIS6 sitios web (es decir. el que está configurado a través de la ficha Seguridad de Directorios de un sitio web de propiedades).

DefaultAppPool:

Si un grupo de aplicaciones está configurado para que se ejecute con la Identidad del grupo de Aplicaciones de la característica, a continuación, un "sintetizados" cuenta llamados IIS AppPool\ va a ser creados sobre la marcha a usa como la identidad del grupo. En este caso, habrá un sintetizados cuenta llamados IIS AppPool\DefaultAppPool creado para el tiempo de vida de la piscina. Si elimina el grupo de aplicaciones, a continuación, esta cuenta ya no existe. Cuando la aplicación de permisos para archivos y carpetas a estos debe agregarse IIS AppPool\.

NETWORK SERVICE:

La NETWORK SERVICE cuenta con un built-in de identidad introducido en Windows 2003. NETWORK SERVICE es una cuenta con pocos privilegios en virtud de la cual se pueden ejecutar los grupos de aplicaciones y sitios web. Un sitio web se ejecuta en un Windows 2003 puede pasar por el sitio cuenta anónima (IUSR_ o lo que sea configurado como la identidad anónima).

En ASP.NET antes de Windows 2008 podría tener ASP.NET ejecutar las solicitudes en virtud de la cuenta del grupo de Aplicaciones (generalmente NETWORK SERVICE). Alternativamente, usted puede configurar ASP.NET para suplantar al sitio de la cuenta anónima a través de la valor en web.config archivo de forma local ).

Ajuste es común en entornos de hospedaje compartido donde los grupos de aplicaciones que se utilizan (en conjunción con parciales de los parámetros de confianza para evitar que se desenrolle de la cuenta suplantada).

En IIS7.x/la suplantación de ASP.NET control se configura a través de la configuración de Autenticación de la función de un sitio. Así que usted puede configurar para que se ejecute como la identidad del grupo, IUSR o un específico personalizado de la cuenta anónima.

LOCAL SERVICE: es una cuenta integrada utilizado por el administrador de control de servicios. Tiene un mínimo de un conjunto de privilegios en el equipo local. Tiene bastante limitado alcance del uso:

Cuenta LocalService
LOCAL SYSTEM:

Tiene bastante amplios privilegios y confianza. Nunca se debe configurar un sitio web o Application Pool Identity para que se ejecute en virtud de esta identidad.

Como dar permisos de escritura a la los usuarios

http://www.jasoft.org/Blog/post/Seguridad-Identidades-de-grupos-de-aplicaciones-en-IIS-75-y-IIS-80.aspx


Mas info: http://stackoverflow.com/questions/510170/the-difference-between-the-local-system-account-and-the-network-service-acco/510225#510225

viernes, 11 de diciembre de 2015

WCF y las fechas.



Bueno esto parece una tontería. C#  no tiene un tipo date, si puedes usar un DateTime, pero no un date.
Teníamos un SW y queríamos que la salida fuera fecha (sin la parte time). Lo cual parece algo sencillo, pero no lo es sobre todo al no tener un tipo DATE

Solución

 Super-importante


[XmlSerializerFormat]

Ejemplo :
namespace WcfService1
{
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        [XmlSerializerFormat]
        MiTipo FuncionPrueba();
    }

    public class MiTipo
    {
        DateTime cumple = DateTime.Now;

        [XmlElement(DataType = "date")]
        public DateTime cumpleValue
        {
            get { return  cumple; }
            set { cumple = value; }
        }
      
        public DateTime Completo
        {
            get { return cumple; }
            set { cumple = value; }
        }
    }

}

Salida:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <FuncionPruebaResponse xmlns="http://tempuri.org/">
         <FuncionPruebaResult>
            <cumpleValue>2015-12-07</cumpleValue>
            <Completo>2015-12-07T17:16:17.2141476+01:00</Completo>
         </FuncionPruebaResult>
      </FuncionPruebaResponse>
   </s:Body>
</s:Envelope>

viernes, 30 de octubre de 2015

Compara esquemas de Oracle en Visual Studio .Net 2013


Hay que instalar

http://www.oracle.com/technetwork/es/developer-tools/visual-studio/overview/index.html


Video de cómo se instala



Video de cómo se usa
https://www.youtube.com/watch?v=LLSsNxLj3yE



A las malas siempre está en el comprador de TOAD
Menu --> DataBases--> Compare-->Schemas

viernes, 9 de octubre de 2015

ie11 postback undefined

Me funciona en el ie9 y en el 11 del servidor me dice que _dopostback not found

Poner esto en site-master me valió :

<script runat="server">

protected override void OnInit(EventArgs e)
{
Page.ClientTarget = "uplevel";
base.OnInit(e);

}

</script>

Bueno otra solución sería migrar al 4.5 pero no tengo ni ganas ni intención de instalar nada en el servidor

http://stackoverflow.com/questions/19783852/asp-net-on-net-4-causing-ie11-throw-dopostback-is-undefined-javascript-error

viernes, 17 de julio de 2015

Ctrol de Usuario


Esto es un chorrada, pero si nunca te ha pasado es curioso por lo menos

Controles de usuarios, yo normalmente los tengo en una dll separada, para eso son ctrol de usuario. Pero tenía una aplicación pequeña (un único formulario) no tenía ganas de crear otra dll. Así que cree mi control como como siempre, el problema llego cuando lo quise poner en el formulario con el diseñador

http://jesfre.blogspot.com.es/2008/07/creando-un-user-control-con-vbnet-2005.html

La solución fue “fácil”: compilas la aplicación.. y por magia parece en las herramientas.

viernes, 10 de julio de 2015

Ficheros de recursos..

No sé porque esta semana me he encontrado con un par de ejemplos que sorprenden un poco: parece que la gente ( algunos junior y no tan junior) aún no tienen claro como componer una cadena o usar un fichero de recursos.

Que es un fichero de recursos?? Es fácil es un sitio donde dejar los texto que aparecen por pantalla de una aplicación. Si solo tenemos uno la aplicación siempre usara ese. Seamos sinceros, las aplicaciones se hacen para un idioma y no se usan los recursos. El problema se plantea cuando de pronto se quiere en varios idiomas. Si es tu caso, o crees que existe la posibilidad de tenerla en varios idiomas, es muy recomendable empezar con ellos, te evitaras tener que volver a tocar el código para cambiar literales.

Mis recomendaciones sobre los ficheros de recursos:
1. Añade textos comunes: como son el nombre aplicación, aceptar, cancelar, error, continuar
2. Añade formato de los números y fechas dentro del recurso. No sería la primera vez que usas como separado / y el usuario de pronto quiere - o el año en 4 dígitos
3. Los nombres de los ficheros de recursos deberían ser iguales a los nombre de los componentes, así es más fácil editarlos
Por supuesto en lo nombre de los fichero de recurso hay que usara la como dice la doc:
https://msdn.microsoft.com/en-us/library/vstudio/fw69ke6f%28v=vs.100%29.aspx


Formato de fechas
https://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx

viernes, 8 de mayo de 2015

Web Service en Java

Los programadores de Java todo esto lo ven super claro, pero para un programador de .net.. es infernal:

1 Instalar el eclipse ojito con la versión, que sea Eclipse IDE for Java EE Developers , yo me instalé luna y necesitaba el eclipse indigo
http://java-white-box.blogspot.com.es/2013/06/tomcat-eclipse-como-integrar-el.html
2. Hay que instalar el servidor, un tomcat http://tomcat.apache.org/download-70.cgi y configurar el eclipse claro
Versión extendida: http://java-white-box.blogspot.com.es/2013/06/tomcat-eclipse-como-integrar-el.html
Versión corta https://efunctions.wordpress.com/2011/12/19/configurando-apache-tomcat-7-en-eclipse-indigo/

Nota: Vale yo me instale el indigo, pero no habia forma de añadir el tomcat, porque no salia esa opcion en el eclipse ( desesperante) Solución :
Help >> Install New Software


3. Para que todo sea más fácil instalar el axis
http://www.myjavazone.com/2013/05/configurando-axis2-para-la-generacion.html

https://efunctions.wordpress.com/2011/12/21/web-service-de-java-con-eclipse-indigoapache-tomcat-7-y-apache-axis2/

¿ Por qué  todo esto? El problema fue que nos dieron un JAR que había que llamar desde aplicaciones .Net

Según Microsoft.
https://msdn.microsoft.com/es-es/library/bb972252.aspx

Ademas de la soluciones del msdn dicen  y lo digo porque no lo he probado): Que es posbile pasar el .jar a dll

http://www.codeproject.com/Articles/594632/IKVM-NET-in-Details
http://www.ikvm.net/userguide/tutorial.html

Jbimp --> lo sorprendente es que ni Microsoft lo considere como alternativa. Me gusto la esplicación de http://ricardocasanova.net/blog/?p=1068

Lo que hicimos: Un servicio Web
- El .jar no era nuestro
- Al servicio web solo se llamaria desde aplicaciones internas ( asi que le problema de la seguridad era menos critico)
- llamar a un servicio web desde .net es facil
- El equipo de desarrollo no era experto en java, pero hacer un servicio web no debería ser tan complejo

viernes, 1 de mayo de 2015

Asp clasico & Visual Studio 2012

Vale año 2015 y aun hay aplicaciones asp clásico. Uno puede pensar que ya estarán todas migradas, pues no. Si es tu caso como el mio aquí un par de enlaces de como poder usarlo y volverte loco para configurar el equipo.

http://weblogs.asp.net/dixin/debugging-classic-asp-with-visual-studio-2013

También me paso que me daba un error como congigurar Allow Parent Paths = true pero en IISExpress

Para el IISExpress
http://stackoverflow.com/questions/4769751/how-to-set-allow-parent-paths-in-iis-express-config

Para el IIS normal de toda la vida

http://www.iis.net/learn/application-frameworks/running-classic-asp-applications-on-iis-7-and-iis-8/classic-asp-parent-paths-are-disabled-by-default

viernes, 24 de abril de 2015

SqlServer - update filas con datos de la misma tabla

Una curiosidad
En una tabla tenemos: La columan Year y nombre es clave única
year nombre alias
2014 user1 alias1
2014 user2 alias2
2014 user3 alias3
2015 user1 NULL
2015 user5 NULL
2015 user6 NULL

Hemos dado da alta para el nuevo año  2015 los usuarios , pero queremos traspasar los alias de un año a otro

Pues un update no?


update mitabla set alias = ( Select alias from  mitabla  aux  where aux.year ='2014' and aux.nombre = nombre   
where year= '2015'

Esto da un error, poco aclarador
Mens. 512, Nivel 16, Estado 1, Línea 1
La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =, !=, <, <=, >, >= o cuando se utiliza como expresión.<br />
Se terminó la instrucción
Mens. 512, Nivel 16, Estado 1, Línea 1
La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =, !=, <, <=, >, >= o cuando se utiliza como expresión.
Se terminó la instrucción
La solución


update mitabla set alias = ( Select alias from  mitabla  aux  where aux.year ='2014' and aux.nombre = mitabla.nombre  where year= '2014'

viernes, 17 de abril de 2015

La locura del DateTimePicker


Tenemos un DateTimePicker con la propiedadad ShowCheckBox a true

DateTimePicker1.ShowCheckBox = True

Estamos en el 2015, si en el load del DateTimePicker pongo lo siguiente


    DateTimePicker1.Checked = False
        DateTimePicker1.Value = "17/10/2014"
        DateTimePicker1.ShowCheckBox = False
        DateTimePicker1.Enabled = False
¿Qué valor se muestra?

Pues el dia de hoy

Lo modificamos un poquito, no mucho


        DateTimePicker1.Checked = True
        DateTimePicker1.Value = "17/10/2014"
        DateTimePicker1.ShowCheckBox = False
        DateTimePicker1.Enabled = False


Otro cambio, mira el ejemplo 1


    DateTimePicker1.Checked = False
        DateTimePicker1.Enabled = False
        DateTimePicker1.Value = "17/10/2014"


El check está marcado?? Cuando he dicho que no lo estuviera


Para que saliera desmarcado tendría que poner


        DateTimePicker1.Enabled = False
        DateTimePicker1.Value = "17/10/2014"
        DateTimePicker1.Checked = False

Es un poco locura, estamos hablando de un propiedad que no parezca que tenga tanta implicación en su funcionalidad y si lo tienen

Lo peor de todo, esto es que también pasa con el evento OnValueChanged  si la primera vez que desmarcas el check no se llama al evento, prueba a poner Checked a true antes de asignarle valor


Esto es fácil si únicamente nos fijamos en la propiedad Value, porque si lo que modificas en la propiedad Text  las combinaciones se multiplican

Consejos :
1. Lo primero de todo si vas a tener un checkbox en el DateTimePicker: marca la propiedad Checked = true
2. Usa la propiedad Value: por lo menos te dirá lo que tiene el control de verdad, no el valor que se muestra en pantalla, según tengas o no activo el check

Nota:  para Windows Form Framework 4.0