<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-15382737</id><updated>2025-06-23T21:28:37.169-05:00</updated><category term="Visual Studio 2008"/><category term=".NET Framework 3.5"/><category term="novedades"/><category term="ASP .NET AJAX"/><category term="Silverlight"/><category term="ASP .NET"/><category term="Eventos"/><category term="ASP .NET 3.5"/><category term="Entrenamiento"/><category term="LINQ"/><category term="Recursos"/><category term="Capacitación"/><category term="Herramientas"/><category term="Tips andTricks"/><category term="Visual Studio"/><category term="SQL Server 2008"/><category term="noticias"/><category term=".NET Framework 4.0"/><category term="ASP .NET 2.0"/><category term="ASP .NET MVC"/><category term="Expression Blend"/><category term="Javascript"/><category term="MSP"/><category term="Microsoft"/><category term="SQL"/><category term="Visual Studio 2010"/><category term="WPF"/><category term="Windows Server 2008"/><category term="ASP.NET Core"/><category term="Betas"/><category term="Deployment"/><category term="IIS"/><category term="Webcast"/><category term="Windows 7"/><category term="Windows Vista"/><category term="humor"/><category term="Anwmp"/><category term="SCSF"/><category term="Seguridad"/><category term="WCF"/><category term="cms"/><category term="concursos"/><category term="rilaros"/><category term="Azure"/><category term="Blogs"/><category term="CSS"/><category term="CardSpace"/><category term="Certificación"/><category term="Crystal Reports"/><category term="Dominios"/><category term="Expression Design"/><category term="Expression Studio"/><category term="Expression Web"/><category term="Google Drive"/><category term="Imagenes"/><category term="Imagine CUP"/><category term="Linux"/><category term="Microsoft Reporting"/><category term="Navidad"/><category term="Office 2007"/><category term="Office 2010"/><category term="Oracle"/><category term="Orcas"/><category term="PHP"/><category term="Patterns Practices"/><category term="Service Pack"/><category term="Software Libre"/><category term="WF"/><category term="Windows 8.1"/><category term="marzo"/><category term="paypal"/><category term="servidor"/><category term="webmaster"/><category term="x64"/><title type='text'>Blog de Ricardo La Rosa</title><subtitle type='html'>Un blog creado para compartir herramientas, artículos, código, novedades y mas referente a Desarrollo Web con ASP .NET y también aplicaciones software libre!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>157</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-15382737.post-2443567345814164484</id><published>2022-02-26T12:18:00.001-05:00</published><updated>2022-02-26T12:24:15.570-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google Drive"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Descargar archivos desde Google Drive usando wget</title><content type='html'>&lt;p&gt;Los archivos también se pueden descargar desde Google Drive usando &lt;b&gt;wget&lt;/b&gt;, pero antes de eso, debe saber si los archivos son pequeños o grandes en Google Drive.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Los archivos de menos de 10 MB se consideran archivos pequeños, mientras que los archivos de más de 10 MB se consideran archivos grandes.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Antes de descargar el archivo, es necesario compartirlo públicamente.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Pasos:&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em;&quot;&gt;Seleccione un archivo que deba descargarse y haga clic con el botón derecho.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em; vertical-align: inherit;&quot;&gt;Haz clic&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;hr gt&quot; style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em;&quot;&gt;en &lt;/span&gt;&lt;span class=&quot;hr gt&quot; style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-weight: 700; letter-spacing: -0.003em;&quot;&gt;Compartir.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em; vertical-align: inherit;&quot;&gt;Un cuadro de diálogo aparecerá.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em;&quot;&gt;Haga clic en Avanzar en la esquina inferior derecha.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em; vertical-align: inherit;&quot;&gt;Haga clic en&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;hr gt&quot; style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-weight: 700; letter-spacing: -0.003em;&quot;&gt;Cambiar&lt;/span&gt;&lt;span style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em; vertical-align: inherit;&quot;&gt;&amp;nbsp;en la sección de Obtener Vínculo debajo del listado de personas que tienen acceso.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em; vertical-align: inherit;&quot;&gt;Seleccione la opción &lt;b&gt;cualquier persona que tenga el vínculo&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em; vertical-align: inherit;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em; vertical-align: inherit;&quot;&gt;Haga clic en el botón&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;hr gt&quot; style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-weight: 700; letter-spacing: -0.003em;&quot;&gt;Listo&lt;/span&gt;&lt;span style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em; vertical-align: inherit;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em; vertical-align: inherit;&quot;&gt;Copie el enlace para compartir... como...&amp;nbsp;&lt;/span&gt;&lt;a class=&quot;au jb&quot; href=&quot;https://drive.google.com/file/d/1dYl3VAow3zBL2liq2vDd-05UJja--ZDV/view?usp=sharing&quot; rel=&quot;noopener ugc nofollow&quot; style=&quot;-webkit-tap-highlight-color: transparent; background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;https://drive.google.com/file/d/&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hr gt&quot; style=&quot;box-sizing: inherit; font-weight: 700;&quot;&gt;&lt;em class=&quot;jc&quot; style=&quot;box-sizing: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;1dYl3VAow3zBL2liq2vDd-05UJja--ZDV&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;/view?usp=sharing&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em; vertical-align: inherit;&quot;&gt;Extrae el FILE_ID como….desde el enlace anterior….&amp;nbsp;&lt;/span&gt;&lt;a class=&quot;au jb&quot; href=&quot;https://drive.google.com/file/d/1dYl3VAow3zBL2liq2vDd-05UJja--ZDV/view?usp=sharing&quot; rel=&quot;noopener ugc nofollow&quot; style=&quot;-webkit-tap-highlight-color: transparent; background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.003em;&quot; target=&quot;_blank&quot;&gt;&lt;span class=&quot;hr gt&quot; style=&quot;box-sizing: inherit; font-weight: 700;&quot;&gt;&lt;em class=&quot;jc&quot; style=&quot;box-sizing: inherit;&quot;&gt;1dYl3VAow3zBL2liq2vDd-05UJja--ZDV&lt;/em&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span style=&quot;font-family: charter, Georgia, Cambria, Times New Roman, Times, serif;&quot;&gt;&lt;span style=&quot;font-size: 20px; letter-spacing: -0.06px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;div style=&quot;font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif;&quot;&gt;&lt;span style=&quot;letter-spacing: -0.06px;&quot;&gt;Con el FILE_ID del archivo,&amp;nbsp; en caso ser archivos pequeños, ejecute el siguiente comando en su terminal:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.06px;&quot;&gt;&lt;pre class=&quot;jd je jf jg ew jh ji jj&quot; style=&quot;background: rgb(242, 242, 242); box-sizing: inherit; color: rgba(0, 0, 0, 0.8); letter-spacing: normal; margin-bottom: 0px; margin-top: 56px; overflow-x: auto; padding: 20px;&quot;&gt;&lt;span class=&quot;ff jk jl gs jm b ch jn jo l jp&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5150&quot; style=&quot;box-sizing: inherit; color: #292929; display: block; font-family: Menlo, Monaco, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 16px; letter-spacing: -0.022em; line-height: 1.18; margin-bottom: -0.09em; margin-top: -0.09em; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;wget --no-check-certificate &#39;https://docs.google.com/uc?export=download&amp;amp;id= &lt;/span&gt;&lt;span class=&quot;jm gt&quot; style=&quot;box-sizing: inherit; font-weight: 700;&quot;&gt;FILE_ID&lt;/span&gt;&lt;span style=&quot;box-sizing: inherit; vertical-align: inherit;&quot;&gt;&#39; -O &lt;/span&gt;&lt;span class=&quot;jm gt&quot; style=&quot;box-sizing: inherit; font-weight: 700;&quot;&gt;NOMBRE_ARCHIVO&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style=&quot;color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.06px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.06px;&quot;&gt;En el comando anterior, cambie el FILE_ID por el ID anterior extraído y cambie el nombre de NOMBRE_ARCHIVO por uno propio que vaya a usar.&lt;/div&gt;&lt;div style=&quot;font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.06px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.06px;&quot;&gt;Para el archivos grandes, ejecute el siguiente comando con los cambios necesarios en FILE_ID y NOMBRE_ARCHIVO:&lt;/div&gt;&lt;div style=&quot;font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.06px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class=&quot;jd je jf jg ew jh ji jj&quot; style=&quot;background: rgb(242, 242, 242); box-sizing: inherit; margin-bottom: 0px; margin-top: 56px; overflow-x: auto; padding: 20px;&quot;&gt;&lt;span class=&quot;fd jk jl gs jm b ch jn jo l jp&quot; data-selectable-paragraph=&quot;&quot; id=&quot;5150&quot; style=&quot;box-sizing: inherit; display: block; line-height: 1.18; margin-bottom: -0.09em; margin-top: -0.09em;&quot;&gt;&lt;span style=&quot;color: #292929; font-family: Menlo, Monaco, Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;&quot;&gt;wget --load-cookies /tmp/cookies.txt &quot;https://docs.google.com/uc?export=download&amp;amp;confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate &#39;https://docs.google.com/uc?export=download&amp;amp;id=&lt;b&gt;FILE_ID&lt;/b&gt;&#39; -O- | sed -rn &#39;s/.*confirm=([0-9A-Za-z_]+).*/\1\n/p&#39;)&amp;amp;id=&lt;b&gt;FILE_ID&lt;/b&gt;&quot; -O &lt;b&gt;NOMBRE_ARCHIVO &lt;/b&gt;&amp;amp;&amp;amp; rm -rf /tmp/cookies.txt&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.06px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.06px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.06px;&quot;&gt;Con esto ya podemos descargar archivos usando &lt;b&gt;wget &lt;/b&gt;ya sea pequeños o grandes.&lt;/div&gt;&lt;div style=&quot;color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.06px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: #292929; font-family: charter, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 20px; letter-spacing: -0.06px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/2443567345814164484/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/2443567345814164484?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/2443567345814164484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/2443567345814164484'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2022/02/descargar-archivos-desde-google-drive.html' title='Descargar archivos desde Google Drive usando wget'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-2547149948178738248</id><published>2021-04-12T20:00:00.001-05:00</published><updated>2021-04-12T20:01:19.331-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET Core"/><category scheme="http://www.blogger.com/atom/ns#" term="Deployment"/><category scheme="http://www.blogger.com/atom/ns#" term="IIS"/><title type='text'>Configurar variables de entorno en IIS para aplicaciones ASP .NET Core</title><content type='html'>&lt;div style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;display: none;&quot;&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;Si estamos desarrollando aplicaciones en ASP .NET Core y lo publicamos en IIS para probar simulando un entorno de Producción o cualquier otro ambiente, ASP .NET Core usa variables de entorno para trabajar.&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Configurar variables de entorno en IIS&lt;/h3&gt;&lt;p&gt;1. Abrir el IIS y seleccionar el sitio que queremos configurar.&lt;/p&gt;&lt;p&gt;2. En las opciones del sitio vamos a Editar Configuraccion&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlfZ0ujNO2lf7Vu81B0f5PaIQ9bK1K_bLB1ibpBCVQtFjiYxnL6lZhcArHjoJcjqb1hS4TxzAFmHXMw8ByFc9M6YLGmvjhvjU_mwbMdxWqG4giiqNcbbeM7ounDTGv3eaaCL0-/s599/Screenshot_1.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;461&quot; data-original-width=&quot;599&quot; height=&quot;493&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlfZ0ujNO2lf7Vu81B0f5PaIQ9bK1K_bLB1ibpBCVQtFjiYxnL6lZhcArHjoJcjqb1hS4TxzAFmHXMw8ByFc9M6YLGmvjhvjU_mwbMdxWqG4giiqNcbbeM7ounDTGv3eaaCL0-/w640-h493/Screenshot_1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;3. En el desplegable de &lt;i&gt;&lt;b&gt;Sección &lt;/b&gt;&lt;/i&gt;seleccionamos la opción &lt;b&gt;&lt;i&gt;system.webServer/aspNetCore&lt;/i&gt;&lt;/b&gt; y en el detalle vamos a encontrar la propiedad &lt;i&gt;&lt;b&gt;environmentVariables.&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf06cDH8z1AzTlN9hqhHC8FqSnsb49pAToTjG9e8q0Vl4dpS3Yh-Hg8hEuK_uzKtuZuzcutKuomd9TKWAUrQGFD3TGwNfMiMPg0k4ctPxmOHE3FjU7ym8J5VBAV5qSj9iZ1Djv/s834/Screenshot_2.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;423&quot; data-original-width=&quot;834&quot; height=&quot;324&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf06cDH8z1AzTlN9hqhHC8FqSnsb49pAToTjG9e8q0Vl4dpS3Yh-Hg8hEuK_uzKtuZuzcutKuomd9TKWAUrQGFD3TGwNfMiMPg0k4ctPxmOHE3FjU7ym8J5VBAV5qSj9iZ1Djv/w640-h324/Screenshot_2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;4. En esta propiedad podemos agregar las variables de entorno que necesitamos, solo hay que dar click en los puntos suspensivos para que nos muestre la ventana de propiedades.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEissyDxFWWMjGv23uUpY9P4UuKxZWsgc7DFSxKxL1DWc-p3cT4QUj3eQQDVS90j_dpflhyphenhyphenO2TEjgLgMFFkVuHe2ua0-AeImvMhHhD9YbJ2vOCP1cLx_P6jnWzRhq_jxxXjwsdWH/s1380/Screenshot_3.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;786&quot; data-original-width=&quot;1380&quot; height=&quot;364&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEissyDxFWWMjGv23uUpY9P4UuKxZWsgc7DFSxKxL1DWc-p3cT4QUj3eQQDVS90j_dpflhyphenhyphenO2TEjgLgMFFkVuHe2ua0-AeImvMhHhD9YbJ2vOCP1cLx_P6jnWzRhq_jxxXjwsdWH/w640-h364/Screenshot_3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;5. En este ventana agregamos las variables de entorno que necesitemos, en este caso estoy indicando que la variable &lt;b&gt;&lt;i&gt;ASPNETCORE_ENVIRONMENT &lt;/i&gt;&lt;/b&gt;tenga el valor de &lt;i&gt;&lt;b&gt;Development&lt;/b&gt;&lt;/i&gt;.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;6. Luego de agregar la variable aplicamos la configuración y reiniciamos el IIS para que hagan efecto los cambios.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Siguiendo estos pasos se puede configurar cualquier variable de entorno necesaria para la aplicación, espero les sirva de ayuda.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/2547149948178738248/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/2547149948178738248?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/2547149948178738248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/2547149948178738248'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2021/04/configurar-variables-de-entorno-en-iis.html' title='Configurar variables de entorno en IIS para aplicaciones ASP .NET Core'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlfZ0ujNO2lf7Vu81B0f5PaIQ9bK1K_bLB1ibpBCVQtFjiYxnL6lZhcArHjoJcjqb1hS4TxzAFmHXMw8ByFc9M6YLGmvjhvjU_mwbMdxWqG4giiqNcbbeM7ounDTGv3eaaCL0-/s72-w640-h493-c/Screenshot_1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-1327664737343071792</id><published>2021-01-22T19:53:00.006-05:00</published><updated>2021-01-22T20:09:25.556-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET Core"/><category scheme="http://www.blogger.com/atom/ns#" term="Seguridad"/><title type='text'>[ASPNET CORE] Modificar diseño de vistas en ASP NET Core Identity</title><content type='html'>&lt;div class=&quot;separator&quot;&gt;&lt;p style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt; Ahora que ASP.NET Core Identity no viene con todas las vistas y su código relacionado al momento de crear nuestros proyectos, surge la necesidad de modificar las vistas que se muestran por defecto.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;&quot; height=&quot;357&quot; src=&quot;data:image/png;base64,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&quot; width=&quot;608&quot; /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Si vemos nuestro proyecto, en ninguna parte nos muestra las vistas, ya que estas viene precompiladas por defecto para no cargar el proyecto con todos los archivos que a veces no se modifican ni se eliminan generando basura o algún riesgo de seguridad.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Generar vistas&lt;/h4&gt;&lt;p&gt;Si bien tenemos las vistas a la mano para modificarlas, Visual Studio nos ofrece la opción de agregarlas a nuestro proyecto y recién ahí poder modificarlas al hacer click derecho en el proyecto &lt;b&gt;Add-&amp;gt;New Scaffolded Item..&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;b style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;304&quot; src=&quot;data:image/png;base64,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&quot; width=&quot;592&quot; /&gt;&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;b style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;412&quot; src=&quot;data:image/png;base64,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IgAgl+ieC6Q3Ca6//CHBFUoSPUQAQC7RPRdIbxJcP/HxB8J3Blid6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCepcJQqOghAgByie65QHouzgSFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpDeJLj+8ocEVyhJ9BABALlE91wgvUlw/cTHHwjfGWB1oocIAMgluucC6QmuUKjoIQIAconuuUB6lgpDoaKHCADIJbrnAum5OBMUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6k+D68VOCK5QkeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ6rCkOhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukNwmux48fD98ZYHWihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpDcJrqdPnw7fGWB1oocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpDeJLj+8ocEVyhJ9BABALlE91wgPcEVChU9RABALtE9F0jPUmEoVPQQAQC5RPdcID3BFQoVPUQAQC7RPRdIbxJcPyS4QlGihwgAyCW65wLpOeMKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpTYLrx08JrlCS6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6Qno/DgUJFDxEAkEt0zwXSE1yhUNFDBADkEt1zgfQEVyhU9BABALlE91wgPcEVChU9RABALtE9F0hPcIVCRQ8RAJBLdM8F0hNcoVDRQwQA5BLdc4H0BFcoVPQQAQC5RPdcID3BFQoVPUQAQC7RPRdIT3CFQkUPEQCQS3TPBdITXKFQ0UMEAOQS3XOB9CbB9eOnBFcoSfQQAQC5RPdcIL1JcP3Exx8I3xlgdaKHCADIJbrnAulZKgyFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukN4kuB4/fjx8Z4DViR4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAepPg+ksP/vXwnQFWJ3qIAIBconsukJ4zrlCo6CECAHKJ7rlAes64QqGihwgAyCW65wLpOeMKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ieC6QnuEKhoocIAMgluucC6QmuUKjoIQIAconuuUB6gisUKnqIAIBconsukJ7gCoWKHiIAIJfongukJ7hCoaKHCADIJbrnAukJrlCo6CECAHKJ7rlAeoIrFCp6iACAXKJ7LpCe4AqFih4iACCX6J4LpCe4QqGihwgAyCW65wLpCa5QqOghAgByie65QHqCKxQqeogAgFyiey6QnuAKhYoeIgAgl+ie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&quot; width=&quot;593&quot; /&gt; &lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Con esta opción nos dará la posibilidad de escoger que vistas son las que necesitamos agregar a nuestro proyecto y las que usaremos.&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;&quot; height=&quot;410&quot; src=&quot;data:image/png;base64,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&quot; width=&quot;595&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Una vez le demos clic en Add ya tendremos las vistas como parte de nuestro proyecto y podremos modificarlas según nuestras necesidades.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/1327664737343071792/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/1327664737343071792?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/1327664737343071792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/1327664737343071792'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2021/01/aspnet-core-modificar-diseno-de-vistas.html' title='[ASPNET CORE] Modificar diseño de vistas en ASP NET Core Identity'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-8029438665694442820</id><published>2020-06-17T05:52:00.002-05:00</published><updated>2020-06-23T11:10:14.112-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><title type='text'>Select2 no funciona correctamente en un modal de Bootstrap en Firefox</title><content type='html'>&lt;div&gt;En la mayoria de los casos si se tiene un modal con select2 funciona correctamente, pero recientemente he podido notar que en un caso muy particular no funciona como debe ser, es decir no permite hacer una búsqueda dentro del control.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;El inconveniente se presenta cuando el modal es mas grande que la ventana y se tiene que hacer scroll del modal, en ese caso no funciona el select2, esto solo sucede en Mozilla Firefox.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt=&quot;&quot; src=&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYkAAAEKCAYAAADn+anLAAAgAElEQVR4nO3d/29Td57v8fw1/DKajnaOVtojK2L9S1GJqC6zFpagV8uMqEZJVot0sa6iTafW0maUvaXazHg3kmMILdl6QJAyLgQImSYNhLIpcRhPJnFMnMZJ6iwJp2mCHXzAIa/7g32Ojx0fYij2x8d5PaS3Bp3jbxDbz5xvnToAewG4ORwOh8MpmL112T8QEREVcjMSRERkhpEgIiJTjAQREZliJIiIyBQjQUREphgJIiIyxUgQEZEpRoKIiEwxEkREZIqRICIiU4wEERGZYiSIiMgUI0FERKYYCSIiMsVIEBGRKUaCiIhMMRJERGSKkSAiIlOMBBERmWIkiIjIFCNBRESmGAkiIjLFSBARkSlGgoiITDESRERkipEgIiJTjAQREZliJIiIyBQjQUREphgJIiIyxUgQEZEpRoKIiEzVciQSmLh9FzFV9Osgqg3xgAt2uwu9/FDtJtUXCXWqF62H7bBJEiS5HgeaPBh8lTfl4n/h1/Kb+O3t1/8aiWpByOOAJDvRGSqy3BXIX7h6E/964Ag8QQZil6mySKgDcNv3ovGT+1BUAGoMg+1OyA2nMCr6tRHVmJDHAUmSIDs7ESpcXhgJ2q2qLBIhDxxSI/yKYZnah/ffehdnJgFAxVRvKw7Vy5AkGfWHTqI/rt3VAenYezj5CxskhwchBOCSHPBo7/74MDxN+zNbKLb9aOoOgr8T0W4W8jggHTyKo3YZTsPmRF4kAq7s50lj+FyFPHBIx9DmacJ+W2bL/9DJPtzVP6M27G/qhr7xoU6ht/UQ6mXttv2I6495EMfdv8absoTMU8cxrD2uZIP98En0cTeXCFUWCYTQ6ZRh+0Urzt2OZLYmDNQBN+yyEx2jCUCN4dpvGiA3X4CC3KZz+80JfDuvQM2LRATdR2XYXb2IqUBiwoujcgNOcfOEdrGQxwHJ4UFwIPO50jrxcpHYi8ZPJpAAkBj9GA5Jwt7jf0A0AajKINoaJDT6FQAqBtx2yM4OZD6+1/CbBhnNF5TsY0qwN5/DN99+i4cJINJ9FLLdhYvRRG6PQt7roAqptkgAUKdwzXMi85tIwTGJvhYZ+9pHcrcNeeCQXAgg+8Y+3mvYOjC8mSc74SzYQgm4JDg8fMvR7qVFIgQVI+0N+m6nl4tE5vOXEUTHQW1LQLu79jnrQ4u8D/kfX+15MlsSHUFtzSQ6nVpcstR+vLc3//5UEVUYCYNE9DbOtbwN2e7GgJp5w0lS4TjROVlsP2rhm3n7feWWPlF/NSLhcpEAoI6gvSGz2+nVIxGCx2EWiczWwrbPr7MTk4W7hos8TvFlVAHVFYnIJ414690zmDQuVHtxPPsG6muRcTD360aeF0ZishNO6Th6uUuTSJcXCQDqSDsaZCdaXOWIRB9aZOPWglFhJMy2JPbCPfCj/9r0cqorEoh046hsR/M57ewmBffPNcMuN+OCAih9LbDbj8F3R4EKFcodH06834sYdogEQuh02vC2+wtEEwASUXxx8gR+P7ou4m9JVBUKI4HsbidJknKfpZAHDsmBjqCa+Tx+0oi9rxQJBX0tdtiP+XBHyTzWHd8JvN8bw/ZIFB6TUHCng2c5ClJlkQCQmLiYu05CssF++AR8w9lTmPLObpJg298ET3bdiyOB/LOb5Hocau3FFLcsaBfbHglkdzsZIgEFI//+j4Yzkt7DsVeKBPLPbpJs2N/kQebjuz0SPLupalRfJIiIqGowEkREZIqRICIiU4wEERGZYiSIiMgUI0FERKYYCSIiMsVIEBGRKUaCiIhMMRJERGSKkSAiIlOMBBERmWIkiIjIFCNBRESmGAkiIjLFSBARkSlGgoiITDESRERkipEgIiJTjAQREZliJIiIyBQjQUREphgJIiIyxUgQEZEpRoKIiEwxEkREZIqRICIiU4wEERGZqr5IqMFuNO23QZIkyPUH0NQdhJpbie6m/bBJEiS5HgeauhHUV8Yx7GnCfpsESZJRf6AJ3bmViPefxKF6GZIkwWY/jJP98Qr/zYiqzSpC/X/AGZ8XXu9pnD3fj9CqYW2oH38444PX68Xps+fRn78S/X84A5/XC+/pszjfH4K+Nj2Lkcs9OO31wus7g57LI5hN6ysxO3IZPae98Hp9ONNzGSO5lUjPjuByz2l4vV74zvTg8sgs9LWpHzAf/gZDfRfRc+Yqgnl/lxR+mA/jm6E+XOw5g6v5K+nVVVskRnGqQYazYxQJAInRDjjlBpwaza491QDZ2YHRzEp0OGU0ZFdGuo9CdrRhMKYCqoI7HU7I9pMYAgDlApplO1y9MahQEet1wS4344Ii5m9JVA0ej16G7+wV3HuUBtKPcO/KWfguj+JxZiUu+87iyr1HSCONR/eu4KzvMkYzKzF62YezV+4hc9d7uHLWh8uZlZgZ6IHv/CBmUgBSMxg870PPwAyyK9HjO4/BzErMDJ6Hr2cAmbUzGOjx4fzgDDJ3HcR5Xw+0uwavnkHPxT4MDQbwqfdKfiSCV3Gm5yL6hgYR+NSLK4zE62IeiRutNtib/ZhSDQvVKfib7bC13ijPywl54JCOoze36YDe4xKcnZMAQvA4JBzPrYTaexySsxOTAG7861t498xkwWO5EACAgAvSwQ7DmyqIjoMyWvrK89cgeimRLhyRnWgfzt+6jQ+3wykfQVekPE8bvOLFZ4OzuQWzg/jMdxX3Myvh/WwQubWzGPzMh6uZlbji/Qz5d/0Mvqv3AcxhyO9F4J5h6+BeAN7zX2EBwNyQH97AvdzWQfoeAt7z+CqzEn5vAPcMWx33Al6c/2oh/4XPDcFfGIncSgz5GYnX6AVbEtnf1G1HOjO7dNQgOo/Ycr/Jl0NfC+S8L3Mg4JLg8IQA9KFFPoiO/JWQHB6EijxU3N8I29FuRABMdjohHe/N7bbKBscVKM9fg+jlaFu3b6IlkAlFPNCCN/Wt3/L46nz+l7nxy3fhq/P5X+bGL9+Fr3A+78s8++V/JQjgPq768gOC4BV4/UOYA3D/qi8/TAjiitePocxK+PLClAmZf2gu/4UzEpW0w+4mNQiPU4bsbEGLU4bs9BiOAZRBkS/9XCQCcEkOeEIvvn3mZXvgtDnhyb7YkMcBKa8IjARVn3jABbtkR3NrM+ySHa5AeY+bbfsyNXz55r709ZW52xf5ks7d3vClrzFEYvuXvuH2htvl7spICFbCMYnsFoS+RVFOr2FLQg1249ibud/IAG5JkHXEAy1405b//i0XbklQCarswPVkJ5x5xyQU+Bu1YxKT6HTmH5NQ/I36MQkAUGO9cNmL/Aa2LT4jaN/HYxK0u237wp6+iU+1YxLbvrCncfNT7ZjE9hBM3/w0e0xiYVt8Ht/9XD8msS0+j+/ic+2YxLb4PMbdz3lMQrAqi0TRs5tyu5iKnd3k0FbGA8UDARQ/u2mvCwGe3US7WLGzm7qvBM3Pbuq+gqDp2U3duBI0P7tJ3xoodnaTvoup2NlNBbuuAEaisqotEtnrJA7UQ85eJ3HCP1VwncQB1MvZ6yRO5M6+CnkckCRp22gRifefxGG7LXudxK9wapjXSdBut4pQ/3mcPZ29TuLSAKYKrpM4f/Z09jqJSxiYKrhO4vzZzLUQp8/i0sDUtuskzviy10l8cRffFV4nccaXvU7iC9z9rvA6icz1F74zPfji7neGXV5ZjEQlVV8kiIioajASRERkipEgIiJTjAQREZliJIiIyBQjQUREphgJIiIyxUgQEZEpRoKIiEwxEkREZIqRICIiU9UZia2tLWxtbeH58+cczq4d7XNAJFB1RaIwDJubmxzOrp3CYBAJ4K6bnZ11z87O4lXmddE+CHX/8dvMeNoy8/sPOZzdO9rnIPu50D4nr4vZZ1lbNjc3l/cZ1ZbPz8/ry9PptL58cXFRX/706VN9eTye+y8up1IpffnDhw/15clkUl++srKiL3/8+LG+XFFy/23/tbU1ffnqau6/Tru6uqovX1tb05criqIvf/z4sb58ZWVFX55MJvXlDx8+LLo8Ho/ry1OplL58cXFRX/706VN9+fz8vL48nTb8XzjNzenLjT/TYj8T47+98Wdi/Lc3/kyM//bGn4nx3974MzH+2xt/Jtl/e/FbEtoWQzqdzoXhdx+iruODzPz7SQ5n9432/v9dJhi/uTuEdDqtb2EQVYjYSGiBePbsGVRVxcbGBjY3N0W9HKKqtLm5iY2NDaiqimfPnjEUVEniImEMRCqVQjKZzNscI6Kczc1NJJNJpFIphoIqSWwk0uk0VFVFMpnE2toaD84Rmdja2sLa2hqSySRUVUU6nWYkqBLERGJra0vfitjY2MDa2lrewSoi2m5lZQVra2vY2NjQtyb4ixWVmZhIGLciEokEFEXJO9pORNvF43EoioJEIsGtCaoUcZHQjkWsr69jeXkZsVis0i+DyFJisRiWl5exvr6uH5tgJKjMKh8J7YI5bVfT6uoqlpaWEI1GK/kyiCwnGo1iaWkJq6ur+i4nXmhHZVYdkYjH44hEIpV8GUSWE4lEEI/HGQmqpMpHQjv11Xg8YnFxEdPT05V8GUSWMz09jcXFxbzjEjwVlspMfCQePXqEhYUFhMPhSr4MIssJh8NYWFjAo0ePGAmqlOqIxPz8PCNBtINwOIz5+XlGgiqpeiIxNTVVyZdBZDlTU1OMBFVadUQiFosxEkQ7mJqaQiwWYySokhgJIqtgJEgARoLIKhgJEoCRILIKRoIEYCSIrIKRIAEYCSKrYCRIAEaCyCoYCRKAkSCyCkaCBGAkdrS8DHzwAeB2czg7z4cfAmX6P9BiJEgARmJHH3wA1NVxOKVPQ0NZ3oqMBAnASOzI7c59+EX/lsqp7tHeJ//0TygHRoIEYCR2pH343W7Rr4SqXZnfK4wECcBI7IiRoFIxElR7GIkdMRJUKkaCag8jsSNGgkrFSFDtYSR2xEhQqRgJqj2MxI4YCSoVI0G1h5HYESNBpWIkqPYwEjtiJKhUjATVHkZiR4wElYqRoNqzyyKhruPRo0d4tK6Wfh9GgkrFSFDt2R2RUONB/NH7Edrb2tCWnfaPvPhjMI4dc8FIUKkYCao9tR+JtT9/jo72NrS1d6D7Qj9GgkH89+BlfPL7f0NbWxs+9o9iKf2CB2AkqFSMBNWeGo/E4lfoam9De8fnGP++sARriNzoQntbG7xfzsO0E4wElYqRoNpTy5FIYzJwCm1tXnw5b5aAZdz5pB1t7X6MJU1uwkhQqRgJqj21HIkobvyuDW2fjcLs+x8A0uMX0NbWjs//YnIDRoJKxUhQ7anlSPwZl9ra0Hbpzy++2dxN/EdbG0xvxkhQqRgJqj21HAluSVCFMRJUe2o5ErljEoOLZrfhMQl6jRgJqj21HAnkzm76zy8w8YKzm/7fpZD59RKMBJWKkaDaU+ORALD250v4uC17ncTlQfx3wXUSmfkY/tGl4qfBMhJUKkaCak/tRwIwv+L64uBN+D/eIRSMBJWKkaDaszsioUknv8/8t5u+T+oxSH8/jktaKNo/x7bj14wElYqRoNqzuyJhJv39BK6e/h1OX5vafiYUI0GlYiSo9jASO2IkqFSMBNUeRmJHjASVipGg2sNI7IiRoFIxElR7GIkdMRJUKkaCag8jsSNGgkrFSFDtYSR2pH3wtQ8/h2M2xvdJGTASJAAjsaMPP8x9+DmcUqatrSxvRUaCBGAkdrSykgmF6N9SOdaYtjZAUVAOjAQJwEgQWQUjQQIwEkRWwUiQAIwEkVUwEiRAbUdidnaWwxE2rxsjQQLUdiSIagkjQQK462ZnZ92V/O1qZmYGDx48QDgcxsTEBMbGxnDr1i309/eL/scgqmr9/f24desWxsbGMDExgXA4jAcPHmBmZkb4VhOnZodbEkRWwS0JEoCRILIKRoIEYCSIrIKRIAEYCSKrYCRIAEaCyCoYCRKAkSCyCkaCBGAkiKyCkSABGAkiq2AkSABGgsgqGAkSgJEgsgpGggRgJIisgpEgARgJIqtgJEgARoLIKhgJEoCRILIKRoIEYCSIrIKRIAEYCSKrYCRIAEaCyCoYCRKAkSCyCkaCBGAkiKyCkSABGAkiq2AkSABGgsgqGAkSgJEgsgpGggRgJIisgpEgARgJIqtgJEgARoLIKhgJEoCRILIKRqIaqYjdvY2JhODnU4PwOG14292P+Ot9QkaCyCoYCQECLkiSpI/NfhgnfMOGL+Lb+O2bMn79X4sVekHFny/yyTEcaAm87kAAjASRdTASAgRckCQXAgAAFUrkJtqdMuzuAaiCX1qFuOvOBp+6K/mMjATRq2EkBMiLRFbEh3ekd+CLAEAIHocEVyD352PvncQvbBIcnhAAFVO9rThUL0OSZNQfOol+/df9OPpPHobdJkGSbNjf5MOothtJDaK76QDqZQmSXI9DJ/sQUwufD4A6hd7WQ/rtDhgeI+RxQDrege6m/bBJEuT6QzjZ/9LbGu66v9v/sXv0Ze/2IzASRK+GkRCgWCSKhMH4Z9nZjpsT32JeUaEOuGGXnegYTQBqDNd+0wC5+QIUAKFOJ2zOdgzGVCARxUWXHXvf64cKBX0tdtibz2EiAajKHXQ4ZbzjixQ8n4oBtx2yswN3FBVITOBcsx17XYHM43sckGQn2gdjUJHA6McOSA4PQi/3L+Cuc/3c4fa85L1+DEaC6NUwEgK8IBJHugq/tDN/Pt6b2xHV1yJjX/uI4a4eOCQXAphEpzP/tpi5hd7rQSjoQ4t8EB3B3ColeB29t2YKnq8PLfI+GB8+s5XTCL+SjYTL8Mr1534p7rqf//zv3C19L3evH4ORIHo1jIQAr7AlYfxeDrikvAPfmXGic/IGWm35t9VFunBEcqD4L+/G5wjAte12uWWvLRKo8QPX6lQvWg/bYZO0fXaezOYdsO3MBW0y+xIzPwxH0Z9UZt32++Z+AHnPK9mw/5cfoS9mPNQVx7CnCQfqZUjZ/YUnzo1CP7Mt4CrYNExg9NyJ7L7NzFkWrRcncrcPeeCQZDg7C15v3htj59dN1YuREOAVjkkYv5f7WmQcNG4S6IpsSSQe4tt5BWqRLQlVmce3DxMobUviKLrnXmMkPvg/Hvfo+svd68eoaCTUAbjte9H4yX0oKgA1hsF2J+SGUxgFTH5L0OwcieLrAMQDcNntOOa7k3neRBQ3jc8LFUGPE7a33fgimgCgQrl/Ds12Gc0XlMxjFEQi1OmEbG/GufsKVCTw8JvM7Y92R7I38MAhSZBkJ/I6USQSpq+bqhojIUDh2U33L6LlbePZTS+OhNLXArv9GHx3FKhQodzx4cT7vYhBOyaRPZ6gxtDrssPe0gdFOybhuohoAkBiFB1OW/YXwBcdk8gc19CPebyuSPxLb9hdyVO5KhqJkAeO7P45ndqH9996F2cmUbZIhDwOSMfO5Z+zrAbgkvfCPaD9eR/ahtXt9zvajTkgPxLZ+77Xn397tf897N3rxoD+dz2Io0ftkJ2duS0QRqJmMBIC7HidxIsjkX92kwTb/iZ4hrV7G85ukutxoKkbQe0jbjy7yWbH4ZPaRXIveXYTdzftJIROpwzbL1px7nYk81u9UZkiEXDt8EVcyg/LGAmz2yt+NGr7JEMeOCQHPMEBuO2G3U6MRM1gJEiAWo8EAHUK1zzZffklHZMo5Qu1+L79nY9lwPC8LxGJG62wFb294cCVFokQoI60o0Hb7VTCMQlGwxoYCRJgF0TCIBG9jXMtb0O2uzGgoja3JDL7pzDS3pDZ7cQtiZrBSJAAtR2JyCeNeOvdM5g0LlR7cVz7Mi1TJEZPNbz4mIRyAc1lOSZhOB1OHUF7gwxni4uRqBGMBAlQ25FApBtHZTuaz2lnNym4f64ZdrkZFxSU/ewm/Xm1s5v0s5WyZzc523Ez7+ymvXAFSjm7KXc2VP7ZTfnnTKsj7WgoeRcaVTtGggSo8UgASExczLtewX74BHza2QUm10lkzggwuabA4UHI9HqD3Jd0seszhvM2LfKvk7DZD6O1dyr3Hw17peskCi+syex2KozEi143VS9GggSo/UgQ1QpGggRgJIisgpEgARgJIqtgJEgARoLIKhgJEoCRILIKRoIEYCSIrIKRIAEYCSKrYCRIAEaCyCoYCRKAkSCyCkaCBGAkiKyCkSABGAkiq2AkSABGgsgqGAkSgJEgsgpGggRgJIisgpEgAaorEnv8XRwOx2QYCRKAkeBwrDKMBAnASHA4VhlGggRgJDgcqwwjQQIwEhyOVYaRIAEYCQ7HKsNIkACMBIdjlWEkSABGgsOxyjASJEA2EuoUelsPw26TIEkSbPt/iY/6YlCztwp5HJBcgdzd1Bj6Pvol9tskSJKM+gNN8Azmbo+AC5JkR0ufkv90ARekf/g97m9uQlUv4fjf/A1+9rOf4ac//Sl+8pOfCP8QcjjVPIwECeCuA+LugMsO+zEf7igqgASiN9vhlBtwajRzq/xIKOhrsUN2tuNmNAGoCiI32+GU7XAPZDMRcEGSJEj2FuR1okgkmnu4JcHhlDKMBAngrkPI43ZIx3AublyuIuCSsdc9AKAgEiEPHNI78EXyHyniewfS0W7MAdlIvIOjR2XYW/qgd4KR4HBeeXZ3JG6g1WZHs38qt8cCgDrlR7PdhtYbwl5YrXPXIeBySw4PQi+4VV4kAi4Uvf1IO/ZJLgS020guBCLdOCobdjsxEhzOK8/ujgSQGO2AU7bhSGcQKgA12IkjNhnOjlEkRL+42uWuC3kcLxWJSNeR4pEIeeAojASAuL8RsrbbicckOJxXnt0eCQBQgx44ZRnOlpbM/3qCeVsW9NqVeUsCABCHvzG724lbEhzOKw8jkZHZgshtUVBZuesw+rG7oSzHJLRIAIj70Sjb0dLSWPFIvDEyg+jTzIdoczOF6Nyf8Ia2/sKfEFhX8QwAttJYXZ/BP1/Q7nsBJ7/7AevPAeA5UuoPCIx064+7L7SE5c3M4z5LJ/FN6ILwLxFObQ8jQQIYzm5qPof7eWc3OeDJbi688Owm/faFZzcZIoHsbidJqnAkhnBbfY6H8UH8rb8Lf/v1PB5upXD7bmb9//2fFDafzMN1qQt7Lg1i6Mlz/PA/Q9jj78LhucfYfLKE317vxp4Ln6E1nsRmegkf+ruw549/xczWM0yGe/GGvxv/K6xgY2sVPX8U/0XCqd1hJEiAYtdJZK97GM5tWrzadRL5kdB2O1X0mMStGFbwPbr1rYNudP8APFy4hj3+fnz5BJgO57YO3gh/DzyZw6/8XehYVhGbu1bwWAq8/i7smVSA1Dz+WX+uP2Eo9RwTE+K/SDi1O4wECVDjV1xPrGAz78u8C95VYOW7fuzxBzGx9QRDI4bbTyrAkxgaizzWvpkf8Cwxg8P+LvxqIQn88JfcbqtscCYnxX+RcGp3GAkSoMYjUeRLPxeJ+5jEBr689eLb7/F34Y2RGB4+T+LL7DGJxu82gNX7htswEpzyDyNBAtR4JF7DlsQbIzOIPX2KicncgWluSXBEDCNBAtR4JAbn8DDvmIQf/nXtmMQ19Bcck/j7mR/0YxJ7/F144/pfMJl+hsnJgjOXtsXnFr5+ymMSnPIOI0EC1Hgkip7dlNvFVOzspsxWRhf2XL1fPBD+ruJnN20q8PLsJk4Zh5EgAWo9EtnrJNQ0NpG5TmJq5mrBdRIppLaQuU5idQr/O7vV0fjdRtHXr0VkX2gJS2ntOol13B7jdRKc8g4jQQLUfiQ4nFoZRoIEYCQ4HKsMI0ECMBIcjlWGkSABGAkOxyrDSJAAjASHY5VhJEgARoLDscowEiQAI8HhWGUYCRLAXTc7O+uenZ1FpWZmZgYPHjxAOBzGxMQExsbGcOvWLfT39wv/EHI41Tz9/f24desWxsbGMDExgXA4jAcPHmBmZqZin99qn9fN+NjGGM/Nzb2W5fPz8/rydDr9WpY/ffpUX764uPhjl3NLgsOxynBLggRgJDgcqwwjQQIwEhyOVYaRIAEYCQ7HKsNIkACMBIdjlWEkSIDqigQRmWMkSABGgsgqGAkSoDoiMT8/z0gQ7WBqagrz8/OMBFVS9UQiHA5X8mUQWU44HGYkqNKqIxILCwuMBNEOwuEwFhYWGAmqJPGRUBQFi4uLmJ6extbWViVfCpFlbG1tYXp6GouLi1AUhZGgSql8JLa2tvD8+XM8e/YMGxsbWF1dRTweRyQSwZMnTyr5UogsI5lMIhKJIB6PY3V1FRsbG3j27BmeP3/OX66onKojEktLS4hGowiFQkgmk5V8OURVbWtrC8lkEn/9618RjUaxtLTESFAlVT4SAPRIpFIprK+vY3l5GbFYDOFwGOPj4/j6668xNDSEgYEB3LhxA9evX8f169dx7do1DqdmR3uf37hxAwMDAxgaGsLXX3+N8fFxhMNhxGIxLC8vY319HalUSo8EURmJi0Q6nc47LhGPxxGNRjE5OYnx8XHcvXsXIyMjGB4extDQEIaGhjA4OMjh1Oxo7/Ph4WGMjIzg7t27GB8fx+TkJKLRKOLxeN7xiHQ6zUhQuYmJxNbWFjY3N/VdTmtra1hZWcHi4iKi0SjC4TBCoRDGx8cxNjaGb775hsPZNTM2Nobx8XGEQiGEw2FEo1EsLi5iZWUFa2tr+q6mzc1N7mqichMTCSB/ayKZTOqhiMfjiMViiEajiEQimJ6eRjgcRjgcxtTUFIdTs6O9z6enpxGJRBCNRhGLxRCPx/VAJJNJbkVQJYmNhLY1kUql9FAoioLl5WUsLS0hHo9jcXERCwsLmJ+fx/z8PGKxGIdTc6O9vxcWFrC4uIh4PI6lpSUsLy9DURQ9ENqxCJ76ShUiLhJAfihUVcXGxgYSiQTW19exurqK1dVVKIqCR48ecTi7ZhRF0d//6+vrSCQS2NjYgKqqDARVmthIALlQpNNpPRapVAobGxt6NDic3Tba+z+VSulxSKfTDARVmvhIAJlQFMZCCwaHs1tH+xwY48BAUIVVR75U4l0AAAA5SURBVCQ02oV2xmhwOLt1jJ8FnsVEglRXJDRbW1vbgsHh7LbRPgdEArnrAOxFJhQcDofD4Rhn7/8HbEmoxOHKD0EAAAAASUVORK5CYII=&quot; /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La solución a este inconveniente es muy sencilla, pero dificil de encontrar, basta con agregarle una opción al momento de crear el select2.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;text-align: left;&quot;&gt;&lt;code class=&quot;hljs twig&quot;&gt;&lt;span class=&quot;xml&quot;&gt;&lt;span class=&quot;javascript&quot;&gt;$(&lt;span class=&quot;hljs-string&quot;&gt;&#39;#mySelect2&#39;&lt;/span&gt;).select2({
        dropdownParent: $(&lt;span class=&quot;hljs-string&quot;&gt;&#39;#myModal .modal-body&#39;&lt;/span&gt;)
    });&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Con esto le decimos al control que está dentro de un modal o tamben podemos hacerlo con el siguiente código, antes de llamar al modal:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;code class=&quot;hljs javascript&quot;&gt;$.fn.modal.Constructor.prototype.enforceFocus = &lt;span class=&quot;hljs-function&quot;&gt;&lt;span class=&quot;hljs-keyword&quot;&gt;function&lt;/span&gt;(&lt;span class=&quot;hljs-params&quot;&gt;&lt;/span&gt;) &lt;/span&gt;{};&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Con esta última opción se podrá hacer una sola vez y no tener que aplicar el cambio de forma individual, en cualquiera de los casos tendremos funcionando correctamente el select2.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt=&quot;&quot; src=&quot;data:image/png;base64,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&quot; /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La explicación por parte del motivo por lo que sucede este problema lo pueden encontrar en &lt;a href=&quot;https://select2.org/troubleshooting/common-problems&quot; target=&quot;_blank&quot;&gt;este enlace&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/8029438665694442820/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/8029438665694442820?isPopup=true' title='5 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/8029438665694442820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/8029438665694442820'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2020/06/select2-no-funciona-correctamente-en-un.html' title='Select2 no funciona correctamente en un modal de Bootstrap en Firefox'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-1873433964139321138</id><published>2018-01-07T01:09:00.001-05:00</published><updated>2018-01-07T16:33:14.734-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET Core"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>[ASPNET CORE] Error: Unable to start program, An operation is not legal in the current state</title><content type='html'>Si estas tratando de ejecutar una aplicación ASP.NET Core en Visual Studio 2017 y te sale este error&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&quot;&lt;span style=&quot;color: #242729; font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit;&quot;&gt;Unable to start program, An operation is not legal in the current state&lt;/span&gt;&quot;&lt;/span&gt;&lt;/blockquote&gt;
Para solucionarlo se puede desactivar la depuracion de Javascript en Chrome, si no lo usas obviamente:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Tools -&amp;gt; Options -&amp;gt; Debugging -&amp;gt; General&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfxvaF6CB27Yd1sdswx_wkzjKgo1HZ315T4g7024gwxCojfA7Rd5-DACIE87riIc1jwd3GPl5ZraWUwkElLx-K0Lzs7td9j2RwxGJpEFh-CqwR67Jr986rKArqjeiBC8JlsUzW/s1600/Snap+2018-01-07+at+01.06.28.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;434&quot; data-original-width=&quot;743&quot; height=&quot;373&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfxvaF6CB27Yd1sdswx_wkzjKgo1HZ315T4g7024gwxCojfA7Rd5-DACIE87riIc1jwd3GPl5ZraWUwkElLx-K0Lzs7td9j2RwxGJpEFh-CqwR67Jr986rKArqjeiBC8JlsUzW/s640/Snap+2018-01-07+at+01.06.28.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/1873433964139321138/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/1873433964139321138?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/1873433964139321138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/1873433964139321138'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2018/01/aspnet-core-error-unable-to-start.html' title='[ASPNET CORE] Error: Unable to start program, An operation is not legal in the current state'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfxvaF6CB27Yd1sdswx_wkzjKgo1HZ315T4g7024gwxCojfA7Rd5-DACIE87riIc1jwd3GPl5ZraWUwkElLx-K0Lzs7td9j2RwxGJpEFh-CqwR67Jr986rKArqjeiBC8JlsUzW/s72-c/Snap+2018-01-07+at+01.06.28.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-3092422317911589802</id><published>2017-02-18T19:07:00.002-05:00</published><updated>2017-02-18T19:08:39.329-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>[SQL Server] Backup a todas las bases de datos</title><content type='html'>Las copias de seguridad de las bases de datos son muy importantes es por eso que se recomienda hacerlas periódicamente para no perder alguna información valiosa que estas contengan.&lt;br /&gt;
&lt;br /&gt;
Ya sea que estés trabajando locamente o en un servidor hacerlo una a una puede ser tedioso y hasta aburrido, menos mal que SQL no da la facilidad de hacerlo vía Script y con un cursos podemos sacarle copia a todas nuestras bases de datos.&lt;br /&gt;
&lt;br /&gt;
Para ello pueden usar este script:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint lang-sql prettyprinted&quot; style=&quot;border: 0px solid rgb(136, 136, 136); box-sizing: inherit; color: #222222; font-size: 12px; height: auto; min-height: 35px; padding: 2px;&quot;&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;DECLARE&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @name &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;VARCHAR&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: inherit; color: green;&quot;&gt;-- database name  &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;DECLARE&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @path &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;VARCHAR&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;256&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: inherit; color: green;&quot;&gt;-- path for backup files  &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;DECLARE&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @fileName &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;VARCHAR&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;256&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: inherit; color: green;&quot;&gt;-- filename for backup  &lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;DECLARE&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @fileDate &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;VARCHAR&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: inherit; color: green;&quot;&gt;-- used for file name&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;
 
&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: inherit; color: green;&quot;&gt;-- specify database backup directory&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;SET&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @path &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: inherit; color: red;&quot;&gt;&#39;C:\Backup\&#39;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;  
 
&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: inherit; color: green;&quot;&gt;-- specify filename format&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @fileDate &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd2&quot; style=&quot;box-sizing: inherit; color: magenta;&quot;&gt;CONVERT&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;VARCHAR&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;),&lt;/span&gt;&lt;span class=&quot;kwd2&quot; style=&quot;box-sizing: inherit; color: magenta;&quot;&gt;GETDATE&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;(),&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;112&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; 
 
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;DECLARE&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; db_cursor &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;CURSOR&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;FOR&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;  
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;SELECT&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; name 
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; master&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;dbo&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;sysdatabases 
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;WHERE&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; name &lt;/span&gt;&lt;span class=&quot;kwd3&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;NOT&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd3&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;IN&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: inherit; color: red;&quot;&gt;&#39;master&#39;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: inherit; color: red;&quot;&gt;&#39;model&#39;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: inherit; color: red;&quot;&gt;&#39;msdb&#39;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: inherit; color: red;&quot;&gt;&#39;tempdb&#39;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;box-sizing: inherit; color: green;&quot;&gt;-- exclude these databases&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;
 
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;OPEN&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; db_cursor   
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;FETCH&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; NEXT &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; db_cursor &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;INTO&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @name   
 
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;WHILE&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd2&quot; style=&quot;box-sizing: inherit; color: magenta;&quot;&gt;@@FETCH_STATUS&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;   
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;BEGIN&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;   
   &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;SET&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @fileName &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @path &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @name &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: inherit; color: red;&quot;&gt;&#39;_&#39;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @fileDate &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;box-sizing: inherit; color: red;&quot;&gt;&#39;.bak&#39;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;  
   &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;BACKUP&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;DATABASE&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @name &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;TO&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;DISK&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;box-sizing: inherit; color: grey;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @fileName  
 
   &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;FETCH&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; NEXT &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;FROM&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; db_cursor &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;INTO&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; @name   
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;END&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt;   
&lt;/span&gt;
&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; 
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;CLOSE&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; db_cursor   
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;box-sizing: inherit; color: blue;&quot;&gt;DEALLOCATE&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;box-sizing: inherit; color: black;&quot;&gt; db_cursor&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint lang-sql prettyprinted&quot; style=&quot;border: 0px solid rgb(136, 136, 136); box-sizing: inherit; color: #222222; font-size: 12px; height: auto; min-height: 35px; padding: 2px;&quot;&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint lang-sql prettyprinted&quot; style=&quot;border: 0px solid rgb(136, 136, 136); box-sizing: inherit; color: #222222; font-size: 12px; height: auto; min-height: 35px; padding: 2px;&quot;&gt;&lt;/pre&gt;
Fuente:&amp;nbsp;&lt;a href=&quot;https://www.mssqltips.com/sqlservertip/1070/simple-script-to-backup-all-sql-server-databases/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;MSSQLTips&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/3092422317911589802/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/3092422317911589802?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/3092422317911589802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/3092422317911589802'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2017/02/sql-server-backup-todas-las-bases-de.html' title='[SQL Server] Backup a todas las bases de datos'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-3836740876238513682</id><published>2014-04-27T18:20:00.001-05:00</published><updated>2017-02-18T19:09:19.865-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows 8.1"/><title type='text'>[Windows 8.1] Permitir conexiones entrantes desde otros equipos</title><content type='html'>Por defecto Windows 8.1 no permite conexiones entrantes desde otros equipos debido a una regla existente en el firewall y si intentamos hacer &lt;em&gt;&lt;strong&gt;ping&lt;/strong&gt;&lt;/em&gt; a un equipo con Windows 8.1 nos devolverá el mensaje&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
Tiempo de espera agotado para esta solicitud&lt;/blockquote&gt;
&lt;br /&gt;
Lo que hay que hacer para permitir las conexiones entrantes es ir al &lt;strong&gt;Firewall de Windows -&amp;gt; Configuración avanzada &lt;/strong&gt;y habilitar la regla de entrada &lt;strong&gt;Archivos e impresoras compartidos (petición eco: ICMPv4 de entrada)&lt;/strong&gt;&amp;nbsp; tal como se muestra la imagen&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv2aeHoBuhIcQXr6mwdZGKvlGwbji5oZmVPMgMdvzZ5PjAEwLo7oiR8erHl42tbahFQEPybkcT4mZW-jt_IiI4tWvfM1R1W6xILM9ykoCkkP_-9tYS7nVEzRYPwySKLwwbrvwX/s1600-h/firewall-input%25255B5%25255D.png&quot;&gt;&lt;img alt=&quot;Habilitar Regla Firewall Windows&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYwLqy3IxgNc7IFkJWLhSeDYYJ83VGzyS6ZRkwTo821hHfp70Shlku1oogtrTC5D8Z9OaG4MVFH8jkoXzATDw_cAFxfH1ZbmdtbbhVTko9WjfPcWhbF_u76yANn8siSy-gHPRb/?imgmax=800&quot; height=&quot;338&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;Habilitar Regla Firewall Windows&quot; width=&quot;675&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Aunque hay mas opciones disponibles con el mismo nombre, hay que habilitar según el tipo de conexión que se desea.&lt;br /&gt;
&lt;br /&gt;
Fuente: &lt;a href=&quot;http://www.sysprobs.com/how-to-enable-ping-reply-response-in-windows-8-simple-steps&quot; target=&quot;_blank&quot; title=&quot;http://www.sysprobs.com/how-to-enable-ping-reply-response-in-windows-8-simple-steps&quot;&gt;http://www.sysprobs.com/how-to-enable-ping-reply-response-in-windows-8-simple-steps&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/3836740876238513682/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/3836740876238513682?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/3836740876238513682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/3836740876238513682'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2014/04/windows-81-permitir-conexiones.html' title='[Windows 8.1] Permitir conexiones entrantes desde otros equipos'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYwLqy3IxgNc7IFkJWLhSeDYYJ83VGzyS6ZRkwTo821hHfp70Shlku1oogtrTC5D8Z9OaG4MVFH8jkoXzATDw_cAFxfH1ZbmdtbbhVTko9WjfPcWhbF_u76yANn8siSy-gHPRb/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-8077908981894059253</id><published>2014-04-25T15:06:00.002-05:00</published><updated>2014-04-25T15:06:57.585-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="IIS"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>[AZURE SDK] No se pueden publicar aplicaciones en VS 2012 después de instalar el SDK de Azure</title><content type='html'>Luego instalar el &lt;a href=&quot;http://go.microsoft.com/fwlink/?linkid=324323&amp;amp;clcid=0x409&quot; target=&quot;_blank&quot;&gt;Azure SDK para Visual Studio 2012&lt;/a&gt;, al momento de querer publicar una aplicación web en el IIS el Visual Studio muestra el siguiente error:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
Error&amp;nbsp;&amp;nbsp;&amp;nbsp; 44&amp;nbsp;&amp;nbsp;&amp;nbsp; The &quot;ImportParametersFile&quot; task failed unexpectedly.      &lt;br /&gt;System.IO.FileNotFoundException: Could not load file or assembly &#39;Microsoft.Web.XmlTransform, Version=1.4.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&#39; or one of its dependencies. El sistema no puede encontrar el archivo especificado. &lt;/blockquote&gt;
&lt;br /&gt;
Al parecer esto se da por que la instalación esta haciendo conflicto con una extensión instalada previamente, se trata de &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkId=282650&quot; target=&quot;_blank&quot;&gt;ASP .NET and Web Tools&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Para resolver este problema solo hay que reinstalar la extensión nuevamente y podremos publicar sin ningún problema.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7FBXGee6PulEs7SnMNmAy6QMkswINLkmi580p7a6Htg1QOB8KvngN1EjcUXB2D9zl9A_P3HpRC00LEOuRUIQf5Qc1_knj84U0eFBPKZJTP95xHsHmiPe6aY_2SZyM6IpFyNYP/s1600-h/WebTools%25255B6%25255D.png&quot;&gt;&lt;img alt=&quot;WebTools&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguPn5tdRHw4xqi-tKgtFSleW11nkg-fJAubHL4awPON1McCD7GAO1g0A4YRU6u7m9eEMt8NvxocVZ2UM0tUPZxFHZ5hVIfbr-0GqyoQUwQu38zoi7UabkAuE-Vcinbc90t6EuW/?imgmax=800&quot; height=&quot;412&quot; style=&quot;background-image: none; border-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;WebTools&quot; width=&quot;604&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Si tienen este mismo inconveniente ya saben que hacer.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/8077908981894059253/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/8077908981894059253?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/8077908981894059253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/8077908981894059253'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2014/04/azure-sdk-no-se-pueden-publicar.html' title='[AZURE SDK] No se pueden publicar aplicaciones en VS 2012 después de instalar el SDK de Azure'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguPn5tdRHw4xqi-tKgtFSleW11nkg-fJAubHL4awPON1McCD7GAO1g0A4YRU6u7m9eEMt8NvxocVZ2UM0tUPZxFHZ5hVIfbr-0GqyoQUwQu38zoi7UabkAuE-Vcinbc90t6EuW/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-661773664760296801</id><published>2014-04-03T01:02:00.000-05:00</published><updated>2014-04-03T01:02:36.310-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips andTricks"/><title type='text'>ASP .NET MVC - Aumentar el tamaño máximo permitido para serializar en formato JSON</title><content type='html'>&lt;h3&gt;
Introducción&lt;/h3&gt;
&lt;br /&gt;
Al usar JSON como formato de transferencia de nuestros datos desde el controlador e intentar enviar un volumen considerable de datos, podríamos tener un error como el siguiente:    &lt;br /&gt;    &lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property.&lt;/blockquote&gt;
&lt;br /&gt;Esto se da debido que el tamaño máximo para la serialización tiene un tope configurado en la propiedad &lt;strong&gt;maxJsonLength&lt;/strong&gt; que se usa para enviar la información en formato JSON.     &lt;br /&gt;
&lt;h3&gt;
Cambiando el valor máximo permitido&lt;/h3&gt;
&lt;br /&gt;Para resolver el problema podríamos intentar cambiando el archivo de configuración de nuestra aplicación así: &lt;br /&gt;
&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;&quot;&gt;
&lt;div id=&quot;codeSnippet&quot; style=&quot;background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;
&lt;pre style=&quot;background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;system.web.extensions&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;  &lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;scripting&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;    &lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;webServices&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;      &lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;jsonSerialization&lt;/span&gt; &lt;span style=&quot;color: red;&quot;&gt;maxJsonLength&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;50000000&quot;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;    &lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;webServices&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;  &lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;scripting&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;system.web.extensions&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Pero curiosamente esta configuración no hace efecto en los resultados que deseamos, el motivo de esto se encuentra como nota en la &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.web.configuration.scriptingjsonserializationsection.maxjsonlength.aspx&quot; target=&quot;_blank&quot;&gt;documentación de la propiedad&lt;/a&gt;, donde indica que solo se usa para instancias internas, así que toca modificar por otro lado, para lo cual tenemos 2 opciones: &lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Asignar un valor a la propiedad.&lt;/h4&gt;
&lt;br /&gt;
Si normalmente devolvemos la data de esta manera: &lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;&quot;&gt;
&lt;span style=&quot;color: blue; font-size: 8pt; line-height: 12pt;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 8pt; line-height: 12pt;&quot;&gt; Json(data, JsonRequestBehavior.DenyGet);&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
Deberíamos cambiar a esto:&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;&quot;&gt;
&lt;span style=&quot;background-color: white; font-size: 8pt; line-height: 12pt;&quot;&gt;var jsonResult = Json(data, JsonRequestBehavior.DenyGet);&lt;/span&gt;&lt;br /&gt;
&lt;div id=&quot;codeSnippet&quot; style=&quot;background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;
&lt;span style=&quot;font-size: 8pt; line-height: 12pt;&quot;&gt;jsonResult.MaxJsonLength = &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: 8pt; line-height: 12pt;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;font-size: 8pt; line-height: 12pt;&quot;&gt;.MaxValue;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-size: 8pt; line-height: 12pt;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 8pt; line-height: 12pt;&quot;&gt; jsonResult;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
Si nos fijamos al inicio la propiedad tiene valor nulo, así que al asignarle el valor que deseamos como tope para la serialización se va a poder enviar la data sin ningún problema. &lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Sobrescribir el controlador base&lt;/h4&gt;
&lt;br /&gt;
El método &lt;strong&gt;Json&lt;/strong&gt; esta implementado en la clase &lt;strong&gt;Controller&lt;/strong&gt;, que es la clase base de la cual heredan todos los controladores, si necesitamos hacer el cambio para todo nuestro proyecto podemos crear un controlador base que herede de esta clase y nuestros controladores hacerlos heredar de esta nueva clase o si lo deseamos para un controlador especifico solo podemos sobrescribir el método dentro de nuestro controlador de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;background-color: #f4f4f4; border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; cursor: text; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;&quot;&gt;
&lt;span style=&quot;color: blue; font-size: 8pt; line-height: 12pt;&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 8pt; line-height: 12pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: 8pt; line-height: 12pt;&quot;&gt;override&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 8pt; line-height: 12pt;&quot;&gt; JsonResult Json(&lt;/span&gt;&lt;span style=&quot;color: blue; font-size: 8pt; line-height: 12pt;&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 8pt; line-height: 12pt;&quot;&gt; data, &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: 8pt; line-height: 12pt;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 8pt; line-height: 12pt;&quot;&gt; contentType, System.Text.Encoding contentEncoding, JsonRequestBehavior behavior)&lt;/span&gt;&lt;br /&gt;
&lt;div id=&quot;codeSnippet&quot; style=&quot;background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;
&lt;pre style=&quot;background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;{&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;    &lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; JsonResult()&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;    {&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;        Data = data,&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;        ContentType = contentType,&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;        ContentEncoding = contentEncoding,&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;        JsonRequestBehavior = behavior,&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;        MaxJsonLength = Int32.MaxValue&lt;/pre&gt;
&lt;pre style=&quot;background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;    };&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: &#39;Courier New&#39;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;&quot;&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
Con esto ya no tendríamos el error mencionado inicialmente, podrían cambiar el &lt;strong&gt;Int32.MaxValue&lt;/strong&gt; por algún valor entero que deseen que se restrinja. &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/661773664760296801/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/661773664760296801?isPopup=true' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/661773664760296801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/661773664760296801'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2014/04/aumentar-el-tamano-de-una-cadena-json.html' title='ASP .NET MVC - Aumentar el tamaño máximo permitido para serializar en formato JSON'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-356357012260988415</id><published>2014-01-29T18:50:00.003-05:00</published><updated>2014-01-29T23:05:05.699-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips andTricks"/><title type='text'>ASP .NET MVC - Mostrar mensajes de validación de controles en HTML</title><content type='html'>&lt;h3&gt;   &lt;br /&gt;Introducción&lt;/h3&gt;  &lt;br /&gt;En ASP .NET MVC tenemos un diccionario llamado &lt;a href=&quot;http://www.desarrolloweb.com/articulos/validaciones-aspnet-mvc-donet.html&quot; target=&quot;_blank&quot;&gt;Model State&lt;/a&gt; que almacena los errores de validación que se puedan generar al enviar los datos de un formulario y estos se puedan mostrar al usuario a través de una key que los identifica, pues bien el detalle de esto es que mostrara los mensajes como simple texto y para una necesidad en particular se puede requerir que estos mensajes se muestren en HTML, para ello describo en este post como lograrlo.   &lt;br /&gt;  &lt;h3&gt;   &lt;br /&gt;Creación de la clase helper&lt;/h3&gt;  &lt;br /&gt;Para mostrar los mensajes de validación en HTML crearemos un helper para lo cual tomaremos como referencia el mismo código fuente de ASP .NET MVC que esta disponible en &lt;a href=&quot;http://aspnetwebstack.codeplex.com/&quot; target=&quot;_blank&quot;&gt;Codeplex&lt;/a&gt; y le haremos algunas modificaciones para lograr nuestro objetivo.   &lt;br /&gt;  &lt;br /&gt;La clase que usaremos para adaptarla a nuestras necesidades será &lt;a href=&quot;http://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.Mvc/Html/ValidationExtensions.cs&quot; target=&quot;_blank&quot;&gt;ValidationExtencion.cs&lt;/a&gt; de la cual tomaremos los siguientes métodos:   &lt;br /&gt;  &lt;div id=&quot;codeSnippet&quot; class=&quot;csharpcode&quot;&gt;   &lt;div&gt;&amp;#160;&lt;/div&gt;    &lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4&quot;&gt;     &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4&quot;&gt;       &lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: white&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;static&lt;/span&gt; MvcHtmlString ValidationMessage(&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt; HtmlHelper htmlHelper, &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; modelName, &lt;span style=&quot;color: #0000ff&quot;&gt;object&lt;/span&gt; htmlAttributes)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;    &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;      &lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: white&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;static&lt;/span&gt; MvcHtmlString ValidationMessage(&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt; HtmlHelper htmlHelper, &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; modelName, &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; validationMessage, IDictionary&amp;lt;&lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt;, &lt;span style=&quot;color: #0000ff&quot;&gt;object&lt;/span&gt;&amp;gt; htmlAttributes)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;    &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;      &lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: white&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;static&lt;/span&gt; MvcHtmlString ValidationMessageHelper(&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt; HtmlHelper htmlHelper, ModelMetadata modelMetadata, &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; expression, &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; validationMessage, IDictionary&amp;lt;&lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt;, &lt;span style=&quot;color: #0000ff&quot;&gt;object&lt;/span&gt;&amp;gt; htmlAttributes)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;    &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;      &lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: white&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;static&lt;/span&gt; FieldValidationMetadata ApplyFieldValidationMetadata(HtmlHelper htmlHelper, ModelMetadata modelMetadata, &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; modelName)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;    &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;      &lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: white&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; GetInvalidPropertyValueResource(HttpContextBase httpContext)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;    &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;      &lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: white&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; GetUserErrorMessageOrDefault(HttpContextBase httpContext, ModelError error, ModelState modelState)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;Además de estos métodos de los cuales modificaremos algunos también agregaremos un método, debido a que en ASP .NET MVC esta declarado como interno y no podemos usarlos desde el helper, lo creamos dentro del mismo helper: &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;csharpcode-wrapper&quot;&gt;&lt;br /&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;    &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;      &lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: white&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;static&lt;/span&gt; MvcHtmlString ToMvcHtmlString(&lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt; TagBuilder builder, TagRenderMode renderMode)&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;br /&gt;  &lt;br /&gt;Modificación de métodos&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Una vez copiados los métodos a la clase que será nuestro helper, debe quedarnos similar a la imagen siguiente&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;text-align: center; clear: both&quot;&gt;&lt;a style=&quot;margin-left: 1em; margin-right: 1em&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8QlYIaV0DheZkThblRkNWHLXC9_fiC3bJY0ONBU-E95-TL8oZreBbHWemdJXuoxskG8rc2BHKKZhrdMY2ZbRBL9E1CzN3R11YrzwuIb2mM-Cwq3RwYjkYnYb6GK5yvVNoP24m/s1600/HelperClass.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8QlYIaV0DheZkThblRkNWHLXC9_fiC3bJY0ONBU-E95-TL8oZreBbHWemdJXuoxskG8rc2BHKKZhrdMY2ZbRBL9E1CzN3R11YrzwuIb2mM-Cwq3RwYjkYnYb6GK5yvVNoP24m/s1600/HelperClass.png&quot; width=&quot;700&quot; height=&quot;421&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Primero hay que renombrar el método &lt;span style=&quot;font-size: 13px; font-family: consolas; color: white; background-color: #1e1e1e&quot;&gt;ValidationMessage&lt;/span&gt; para que se llame &lt;span style=&quot;font-size: 13px; font-family: consolas; color: white; background-color: #1e1e1e&quot;&gt;ValidationMessageHTML&lt;/span&gt; que será así como lo llamaremos desde nuestras vistas.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Ahora&amp;#160; el método principal que debemos hacer los cambios es &lt;span style=&quot;font-size: 13px; font-family: consolas; color: white; background-color: #1e1e1e&quot;&gt;ValidationMessageHelper,&lt;/span&gt; dentro de este método cambiamos la línea&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot; class=&quot;csharpcode-wrapper&quot;&gt;&lt;br /&gt;  &lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;    &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;      &lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: white&quot;&gt;FormContext formContext = htmlHelper.ViewContext.GetFormContextForClientValidation();&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;por&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;  &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;    &lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: white&quot;&gt;FormContext formContext = htmlHelper.ViewContext.ClientValidationEnabled ? htmlHelper.ViewContext.FormContext : &lt;span style=&quot;color: #0000ff&quot;&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Esto, debido a que se están usando métodos internos de ASP .NET MVC y no los tenemos disponibles en nuestra clase.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;También cambiamos la línea principal donde hará que el texto lo devuelva en HTML.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;  &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;    &lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: white&quot;&gt;builder.SetInnerText(GetUserErrorMessageOrDefault(htmlHelper.ViewContext.HttpContext, modelError, modelState));&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;por&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;  &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;    &lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: white&quot;&gt;builder.InnerHtml = GetUserErrorMessageOrDefault(htmlHelper.ViewContext.HttpContext, modelError, modelState);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Con estos cambios aplicados a los métodos ya podemos hacer uso del helper para que nos muestre los mensajes de error en HTML, simplemente llamándolo de la siguiente manera: &lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; width: 97.5%; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;  &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: #f4f4f4&quot;&gt;&lt;br /&gt;    &lt;pre style=&quot;border-top-style: none; overflow: visible; font-size: 8pt; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; width: 100%; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; border-left-style: none; line-height: 12pt; padding-right: 0px; background-color: white&quot;&gt;@Html.ValidationMessageHTML(&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;keyerror&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; { @&lt;span style=&quot;color: #0000ff&quot;&gt;class&lt;/span&gt; = &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;field-validation-error-html&amp;quot;&lt;/span&gt; })&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;  &lt;br /&gt;Les dejo la &lt;a href=&quot;http://tny.cz/15cbac3e&quot; target=&quot;_blank&quot;&gt;clase helper&lt;/a&gt; que muestro en el post para que la puedan usar directamente. &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/356357012260988415/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/356357012260988415?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/356357012260988415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/356357012260988415'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2014/01/asp-net-mvc-mostrar-mensajes-de.html' title='ASP .NET MVC - Mostrar mensajes de validación de controles en HTML'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8QlYIaV0DheZkThblRkNWHLXC9_fiC3bJY0ONBU-E95-TL8oZreBbHWemdJXuoxskG8rc2BHKKZhrdMY2ZbRBL9E1CzN3R11YrzwuIb2mM-Cwq3RwYjkYnYb6GK5yvVNoP24m/s72-c/HelperClass.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-4245172063054235635</id><published>2012-06-08T11:37:00.001-05:00</published><updated>2012-06-08T20:07:48.844-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="Seguridad"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips andTricks"/><title type='text'>Validar complejidad de claves de lado del cliente en ASP .NET</title><content type='html'>&lt;p&gt;Muchas veces necesitamos en nuestros desarrollos obligar a que el usuario ingrese una clave con cierto nivel de complejidad por razones de seguridad, en este post, detallaré una forma fácil de poder implementar esto en una aplicación ASP .NET de lado del cliente, no solo validando que la clave sea compleja, sino que también indicando el nivel de complejidad mientras va escribiendo.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnJZpcZOgo66dkekQDtQaYr-37EFODGz4ha1NVKylsoXn-DsmnR0r5wJTyyBEKDQ_iE09_LIhWuob2oqAoPno6sEMerJ233z5CsRn1y1N-tBNNqYxU3stGm6fRx9XSxu6Lw5vl/s1600-h/image6.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZSGKKfVs9y3iaFJWeVqYWqRUI_R16tjnkb4ECZ63tFVPy9oZ5bOUZQC_ME160Cmz4SLiTYSJWNERusEHHepcje4B4u9HN7TI8WQbDltJkbCnOYG3DTpf7iHGTwwU945nov4Jn/?imgmax=800&quot; width=&quot;450&quot; height=&quot;205&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;Introducción&lt;/h2&gt; &lt;p&gt;Para poder ejemplificar esto, vamos a crear un formulario de cambio de clave, el cual tendremos estructurado como la imagen anterior, no consideraremos el código para hacer la validación de la clave anterior o el cambio de clave, únicamente nos centraremos en validar la complejidad de la nueva clave e indicarle esto al usuario.&lt;/p&gt; &lt;h2&gt;Mostrando el nivel de complejidad&lt;/h2&gt; &lt;p&gt;Para realizar esto, recurriremos al control &lt;a href=&quot;http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/PasswordStrength/PasswordStrength.aspx&quot; target=&quot;_blank&quot;&gt;PasswordStrength&lt;/a&gt; del &lt;a href=&quot;http://ajaxcontroltoolkit.codeplex.com/&quot; target=&quot;_blank&quot;&gt;Ajax Control Toolkit&lt;/a&gt; que nos permitirá establecer algunos parámetros de complejidad que vamos a requerir para la clave y según estos parámetros y criterios definidos nos irá mostrando en pantalla el nivel de complejidad que tiene la clave que estamos escribiendo.&lt;/p&gt; &lt;div id=&quot;codeSnippetWrapper&quot;&gt; &lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;asp:TextBox&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;server&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;txtNuevaClave&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;TextMode&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;Password&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;ValidationGroup&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;Enviar&quot;&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;act:PasswordStrength&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;txtNuevaClave_PasswordStrength&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;server&quot;&lt;/span&gt; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #ff0000&quot;&gt;Enabled&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;True&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;MinimumNumericCharacters&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;1&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;PrefixText&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;Complejidad: &quot;&lt;/span&gt; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #ff0000&quot;&gt;TargetControlID&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;txtNuevaClave&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;TextStrengthDescriptions&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;Baja;Media;Alta&quot;&lt;/span&gt; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #ff0000&quot;&gt;MinimumLowerCaseCharacters&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;1&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;PreferredPasswordLength&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;6&quot;&lt;/span&gt; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #ff0000&quot;&gt;RequiresUpperAndLowerCaseCharacters&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;True&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;act:PasswordStrength&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;span class=&quot;kwrd&quot;&gt;Este código nos permitirá ver el efecto que se aprecia en la imagen anterior al momento de digitar la nueva clave, para lo cual necesitamos configurar algunas propiedades:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span class=&quot;kwrd&quot;&gt;&lt;/span&gt;&lt;span class=&quot;attr&quot;&gt;&lt;strong&gt;MinimumNumericCharacters&lt;/strong&gt; – Esto nos indica como mínimo cuantos caracteres numéricos debe tener la clave.&lt;br&gt;&lt;/span&gt;&lt;span class=&quot;attr&quot;&gt;&lt;strong&gt;PrefixText&lt;/strong&gt; – Es el prefijo que ira al momento de mostrarse la complejidad de la clave.&lt;br&gt;&lt;/span&gt;&lt;span class=&quot;attr&quot;&gt;&lt;strong&gt;TargetControlID&lt;/strong&gt; – Es el control al cual estará asociado esta validación.&lt;br&gt;&lt;/span&gt;&lt;span class=&quot;attr&quot;&gt;&lt;strong&gt;TextStrengthDescriptions&lt;/strong&gt; – Es la descripción que tendrán los distintos niveles de seguridad que consideremos, separados por ponto y coma.&lt;br&gt;&lt;/span&gt;&lt;span class=&quot;attr&quot;&gt;&lt;strong&gt;MinimumLowerCaseCharacters&lt;/strong&gt; – Esto nos indica como mínimo cuantos caracteres en minúscula se debe considerar, pero necesita de la propiedad &lt;span class=&quot;attr&quot;&gt;&lt;strong&gt;RequiresUpperAndLowerCaseCharacters&lt;/strong&gt;&lt;/span&gt; para tener efecto.&lt;br&gt;&lt;/span&gt;&lt;span class=&quot;attr&quot;&gt;&lt;strong&gt;PreferredPasswordLength&lt;/strong&gt; – Esto nos indica el tamaño mínimo requerido para considerar la clave en el ultimo nivel de validación, en el caso del ejemplo “Alta”, tener en cuenta que esto solo sirve para evaluar el nivel de complejidad, pero no valida el TextBox que tenga como mínimo esta cantidad de dígitos.&lt;br&gt;&lt;/span&gt;&lt;span class=&quot;attr&quot;&gt;&lt;strong&gt;RequiresUpperAndLowerCaseCharacters&lt;/strong&gt; – Esta propiedad sirve para activar las propiedades de mínimo minúsculas y mayúsculas requeridas.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span class=&quot;attr&quot;&gt;&lt;/span&gt;&lt;span class=&quot;attr&quot;&gt;Con esta configuración mínima, estamos pidiendo una clave que tenga al menos 6 dígitos, con una minúscula y un numero al menos.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Validando el nivel del complejidad&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;Ya anteriormente hicimos que se muestre el nivel de complejidad de una clave según los parámetros establecidos, pero esto no realiza una validación al momento de enviar estos datos, simplemente nos indica la complejidad que tiene lo que vamos escribiendo.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Entonces para validar la clave, haremos uso del control &lt;a href=&quot;http://msdn.microsoft.com/es-es/library/eahwtc9e(v=vs.100).aspx&quot; target=&quot;_blank&quot;&gt;RegularExpressionValidator&lt;/a&gt; que si nos permitirá realizar esta validación con una &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ff650303.aspx&quot; target=&quot;_blank&quot;&gt;expresión regular&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot;&gt;&lt;br /&gt;&lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;asp:RegularExpressionValidator&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;RegularExpressionValidator1&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;server&quot;&lt;/span&gt; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #ff0000&quot;&gt;ControlToValidate&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;txtNuevaClave&quot;&lt;/span&gt; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #ff0000&quot;&gt;ErrorMessage&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;La clave debe ser como minimo de 6 digitos y al menos un número&quot;&lt;/span&gt; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #ff0000&quot;&gt;ForeColor&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;Red&quot;&lt;/span&gt; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #ff0000&quot;&gt;ValidationExpression&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6,12})$&quot;&lt;/span&gt; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #ff0000&quot;&gt;ValidationGroup&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;Enviar&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;**&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;asp:RegularExpressionValidator&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;act:ValidatorCalloutExtender&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;RegularExpressionValidator1_ValidatorCalloutExtender&quot;&lt;/span&gt; &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;    &lt;span style=&quot;color: #ff0000&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;server&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;Enabled&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;True&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;TargetControlID&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&quot;RegularExpressionValidator1&quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;act:ValidatorCalloutExtender&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Aquí tenemos el control con extender del Ajax Control Toolkit agregado para que muestre el mensaje de forma mas amigable.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;En este control básicamente configuramos el mensaje que debe mostrarse y la expresión regular que hará la misma validación de mínimo 6 caracteres alfanuméricos.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgtXvfYQyDqjyulVszjDQGFFu444ASZYFP42Ux_QteGHt6jttCxPYv0Nco47dbQPeZ21xaNIbe4muih-ZqR6bmJDJBr9jOupqnxJGbULMRO0e2tPx181Hzd6uuOEtqF5rcLXh2/s1600-h/image%25255B5%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwmtNpUPICkTz-iUrcOxjoYRhqgpPmwSl9SrrT_-KCf7IVsSHYI9jtwkVkc6XNN7HYmnpMcIPe8sQsqNjcRpJ337dhfvB_21C7QhxcSRKXgICq-hGqq0RXqaXUZWYZuFzdPrig/?imgmax=800&quot; width=&quot;536&quot; height=&quot;205&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Con esto logramos exigirle al usuario un cierto nivel de complejidad para su clave y también indicarle el nivel de complejidad que va teniendo el texto que va digitando de una forma muy intuitiva.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Espero les sea de utilidad y si pueden aportar con otras formas alternativas, pues bienvenido.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/4245172063054235635/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/4245172063054235635?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/4245172063054235635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/4245172063054235635'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2012/06/validar-complejidad-de-claves-de-lado.html' title='Validar complejidad de claves de lado del cliente en ASP .NET'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZSGKKfVs9y3iaFJWeVqYWqRUI_R16tjnkb4ECZ63tFVPy9oZ5bOUZQC_ME160Cmz4SLiTYSJWNERusEHHepcje4B4u9HN7TI8WQbDltJkbCnOYG3DTpf7iHGTwwU945nov4Jn/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-791301210712004814</id><published>2012-04-11T19:12:00.001-05:00</published><updated>2012-04-11T19:12:56.317-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET Framework 4.0"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Deployment"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft Reporting"/><title type='text'>Publicación de aplicaciones ASP .NET con Informes en Microsoft Reporting</title><content type='html'>Si tenemos una aplicación web desarrollada en ASP .NET en la cual hemos creado reportes&amp;nbsp;usando Microsof Reporting&amp;nbsp;al momento de publicarlo en un servidor web nos va a pedir las librerías necesarias para ejecutarlo que son las siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft.ReportViewer.Common.dll&lt;/li&gt;
&lt;li&gt;Microsoft.ReportViewer.WebForms.dll&lt;/li&gt;
&lt;li&gt;Microsoft.ReportViewer.ProcessingObjectModel.dll&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Estas librerías las podemos adjuntar en la carpeta &lt;strong&gt;bin&lt;/strong&gt; de nuestra aplicación, siendo así, con las 2 primeras librerías&amp;nbsp;no tendremos problema,&amp;nbsp;ya que si vemos la referencia agregada en nuestro proyecto&amp;nbsp;nos daremos cuenta que&amp;nbsp;se encuentran en la ruta:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;strong&gt;C:\Program
Files (x86)\Microsoft Visual Studio 10.0\&lt;/strong&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Pero la última no figura en esa ruta, y si no lo copiamos con el proyecto, tendremos un error del tipo:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;strong&gt;could
not load file or assembly &#39;microsoft.reportviewer.processingobjectmodel
version=10.0.0.0&lt;/strong&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Por este motivo es que se requiere, lo bueno es que si encuentra pero está registrada en el &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/yf1d93sz(v=vs.100).aspx&quot; target=&quot;_blank&quot;&gt;GAC&lt;/a&gt;, por lo que tendremos que copiarla de ahi, en esta ocasión les comparto una forma de hacerlo:&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Copiarlo vía consola DOS&lt;/h4&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Abrir la consola DOS (Presione Windows + R, luego escribir cmd y aceptar)&lt;/li&gt;
&lt;li&gt;Escribir el siguiente comando:&lt;strong&gt; cd C:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Escribir el comando &lt;strong&gt;dir&lt;/strong&gt; para listar los directorios que representan a las versiones para poder seleccionar la adecuada a nuestra aplicación, tendremos una lista similar a la que muestra la &lt;strong&gt;Figura 1&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Escribimos el comando &lt;em&gt;&lt;strong&gt;cd versionNumber&lt;/strong&gt;&lt;/em&gt;, donde &lt;strong&gt;&lt;em&gt;versionNumber&lt;/em&gt;&lt;/strong&gt; representa una de las versiones que visualizamos en el comando anterior (ejemplo &lt;strong&gt;cd 10.0.0.0__b03f5f7f11d50a3a&lt;/strong&gt;) presionamos enter y luego escribir el comando dir y deberíamos visualizar la librería que estamos buscando.&lt;/li&gt;
&lt;li&gt;Por ultimo solo nos queda copiar la librería en algún directorio, para ello escribimos el comando &lt;strong&gt;copy *.dll D:\Lib&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT_oBxL4olnbLfn4w5MlDsrwrZXTnVlUenZIoOXGi5zeZJWc2PGurvECI-6M1nG3ufVfdrSozIjbKVs5l6SV3iT8dUFJBLBFUvytRCpqDg-_yD_b9An8Mjd0OzN6BkvAuJCpQV/s1600/consola.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;202&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT_oBxL4olnbLfn4w5MlDsrwrZXTnVlUenZIoOXGi5zeZJWc2PGurvECI-6M1nG3ufVfdrSozIjbKVs5l6SV3iT8dUFJBLBFUvytRCpqDg-_yD_b9An8Mjd0OzN6BkvAuJCpQV/s400/consola.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Figura 1: Lista de versiones de libreria de Microsoft Reporting&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div&gt;
Con esto ya tendremos la última librería que podremos adjuntar a nuestra aplicación y poder visualizar los informes.&lt;/div&gt;
&lt;br /&gt;
Espero les sea de utilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/791301210712004814/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/791301210712004814?isPopup=true' title='3 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/791301210712004814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/791301210712004814'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2012/04/publicacion-de-aplicaciones-asp-net-con.html' title='Publicación de aplicaciones ASP .NET con Informes en Microsoft Reporting'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT_oBxL4olnbLfn4w5MlDsrwrZXTnVlUenZIoOXGi5zeZJWc2PGurvECI-6M1nG3ufVfdrSozIjbKVs5l6SV3iT8dUFJBLBFUvytRCpqDg-_yD_b9An8Mjd0OzN6BkvAuJCpQV/s72-c/consola.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-4550316805504974423</id><published>2011-12-28T17:55:00.003-05:00</published><updated>2012-06-20T15:42:24.518-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET Framework 4.0"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Herramientas"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2010"/><title type='text'>Implementar Membership Providers con Oracle y Visual Studio 2010</title><content type='html'>Hace algún tiempo atrás, escribí unos artículos sobre la implementación de Membresía (Gestión de Usuarios, Roles y Perfiles) en ASP .NET 2.0 haciendo uso de proveedores de ASP .NET y los controles específicos para estas tareas comunes, aquí pueden ver la&lt;a href=&quot;http://www.elguille.info/colabora/NET2005/RiLaRos_Personalizacion.htm&quot; target=&quot;_blank&quot;&gt; parte 1&lt;/a&gt; y la &lt;a href=&quot;http://www.elguille.info/colabora/NET2006/RiLaRos_Personalizacion_Parte02.htm&quot; target=&quot;_blank&quot;&gt;parte 2&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Ahora veremos de manera similar como implementar esto pero no usando el motor de base de datos SQL Server, sino configurar los providers para trabajar con Oracle desde Visual Studio 2010.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Requisitos:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html&quot; target=&quot;_blank&quot;&gt;ODAC 11.2 Release 3 (11.2.0.2.1) with Oracle Developer Tools for Visual Studio&lt;/a&gt;&lt;br&gt;&lt;br&gt;Esto nos dará la posibilidad de usar los providers de asp .net con Oracle, ahora paso a detallar como podemos lograrlo:&lt;br&gt;&lt;br&gt;&lt;strong&gt;Crear un nuevo proyecto&lt;/strong&gt;&lt;br&gt;&lt;br&gt; &lt;div&gt;Para este ejemplo crearemos un nuevo proyecto de tipo &quot;Aplicación Web ASP .NET&quot; con la plantilla por defecto del Visual Studio &lt;/div&gt; &lt;div&gt;&lt;/div&gt;&lt;strong&gt;Configurar el proveedor de Oracle&lt;/strong&gt;&lt;br&gt;&lt;br&gt; &lt;div&gt;Una vez tenemos la aplicación creada, nos vamos al archivo web.config y eliminamos los tags de:&lt;/div&gt; &lt;div&gt;&lt;/div&gt; &lt;div&gt;- Membsership&lt;/div&gt; &lt;div&gt;- Profile&lt;/div&gt; &lt;div&gt;- RoleManager&lt;/div&gt; &lt;div&gt;&lt;/div&gt; &lt;div&gt;Ahora abrimos la herramienta de administración de sitios de asp .net en Proyecto-&amp;gt;Configuración de ASP .NET&lt;/div&gt; &lt;div&gt;&lt;/div&gt; &lt;table style=&quot;text-align: center; float: left&quot; class=&quot;tr-caption-container&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot;&gt;&lt;a style=&quot;margin-left: auto; margin-right: auto&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0X26mXnCRg3PJkLmrNYum_uQ2x11soH8ixZuDf2OfzlvLFdP0k022zVf4XXg-c9oQ_Qqhxu4amn-laVi34JvHnbl80ToMKwwDm6XBXS7RFkg-00hyphenhyphenNZfYBYUYVYwfiG7p3h3E/s1600/Providers.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0X26mXnCRg3PJkLmrNYum_uQ2x11soH8ixZuDf2OfzlvLFdP0k022zVf4XXg-c9oQ_Qqhxu4amn-laVi34JvHnbl80ToMKwwDm6XBXS7RFkg-00hyphenhyphenNZfYBYUYVYwfiG7p3h3E/s640/Providers.png&quot; width=&quot;640&quot; height=&quot;536&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot; class=&quot;tr-caption&quot;&gt;Fig. 1 - Configuración de Proveedores&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Nos dirigimos a la pestaña &quot;&lt;em&gt;Proveedor&lt;/em&gt;&quot;&amp;nbsp; y accedemos al enlace &quot;&lt;em&gt;Seleccionar un proveedor distinto para cada característica (avanzado)&lt;/em&gt;&quot;, dentro de esta pantalla marcamos como Proveedor de Pertenencia a &quot;&lt;em&gt;OracleMembershipProvider&lt;/em&gt;&quot; y como Proveedor de funciones&amp;nbsp; a &quot;&lt;em&gt;OracleRoleProvider&lt;/em&gt;&quot;, esto nos modificará nuevamente el archivo web.config, pero ya con los proveedores de Oracle.&lt;br&gt;3. Generar las tablas &lt;br&gt;&lt;br&gt;Una vez configurados los proveedores de pertenencia (Membership) y funciones (Roles) tenemos que generar las tablas y todos los scripts necesarios para poder trabajar correctamente.&lt;br&gt;&lt;br&gt;Cuando se instala el ODAC, al final nos indica la ruta donde se encuentran los script para ejecutarlos en nuestra base de datos, que normalmente es:&lt;br&gt;&lt;br&gt;[INSTALL_PATH]\product\11.2.0\client_1\ASP.NET\SQL&lt;br&gt;&lt;br&gt;En esta carpeta tenemos todos los scripts para instalar los proveedores de forma independiente así como también instalarlos todos, que es lo que mostrare en el ejemplo.&lt;br&gt;&lt;br&gt;Para ello vamos a nuestro proyecto y dentro de herramientas vamos a usar la opción &lt;em&gt;Ejecutar Script de SQL*Plus&lt;/em&gt;&lt;br&gt; &lt;table style=&quot;text-align: center; margin-left: auto; margin-right: auto&quot; class=&quot;tr-caption-container&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; align=&quot;center&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot;&gt;&lt;a style=&quot;margin-left: auto; margin-right: auto&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyUnB8LDOzkyhkWio6ZeWhwQfUeLjUwsqvWo3k4YRWPmQwyCnI6t3iy8W91s_oq45zRSpARgctcWbPeXh1KALOJiJ5uDYkdXkUOnItumGxwtSmS7FQDADzUurslh3Ed73Hae7Y/s1600/SQL_Plus_min.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyUnB8LDOzkyhkWio6ZeWhwQfUeLjUwsqvWo3k4YRWPmQwyCnI6t3iy8W91s_oq45zRSpARgctcWbPeXh1KALOJiJ5uDYkdXkUOnItumGxwtSmS7FQDADzUurslh3Ed73Hae7Y/s640/SQL_Plus_min.png&quot; width=&quot;640&quot; height=&quot;440&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot; class=&quot;tr-caption&quot;&gt;Fig. 2 - Ejecutar SQL Plus&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Con esto nos va a pedir la ruta donde están los scripts, así como la conexión a la base de datos donde se ejecutaran.&lt;br&gt;&lt;br&gt; &lt;table style=&quot;text-align: center; margin-left: auto; margin-right: auto&quot; class=&quot;tr-caption-container&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; align=&quot;center&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot;&gt;&lt;a style=&quot;margin-left: auto; margin-right: auto&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLScTl2EP1MwBDUk7_LyVzyf0FHY6ZWv3JPDbwt1_R-4cDZ61lb_pjq4coU4DGQb6TBDccw8qv7KOm2R0KnBTwkdpBzwi_Dj07m5HfBUCDY46uvGk0ieTDIwXiccPUkqEa6lA9/s1600/InstallProviders_Clean.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLScTl2EP1MwBDUk7_LyVzyf0FHY6ZWv3JPDbwt1_R-4cDZ61lb_pjq4coU4DGQb6TBDccw8qv7KOm2R0KnBTwkdpBzwi_Dj07m5HfBUCDY46uvGk0ieTDIwXiccPUkqEa6lA9/s320/InstallProviders_Clean.png&quot; width=&quot;320&quot; height=&quot;298&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot; class=&quot;tr-caption&quot;&gt;Fig. 3 - SQL Plus&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Si aun no existe ninguna conexión, tenemos la opción de crear una nueva conexión, en la siguiente figura, donde nos mostrara las conexiones que tenemos registradas en nuestro archivo tsnames.ora del Oracle, de las cuales seleccionaremos una y le ingresamos el usuario y clave para hacer la conexión, probamos y le asignamos un nombre.&lt;br&gt; &lt;table style=&quot;text-align: center; margin-left: auto; margin-right: auto&quot; class=&quot;tr-caption-container&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; align=&quot;center&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot;&gt;&lt;a style=&quot;margin-left: auto; margin-right: auto&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeEYO3JjgtwD85SeyPdEtISQD7rxhyUAeHWXjhDC3cBGjSdWmpGQsi8g-hkbBrkndEUKD8aVLTIC5kfBpIgHNFOO8Mf8wWZWXpNPe8c0uBElBY2UyY7BwB2UOnwcEimCOYMCNi/s1600/Connections.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeEYO3JjgtwD85SeyPdEtISQD7rxhyUAeHWXjhDC3cBGjSdWmpGQsi8g-hkbBrkndEUKD8aVLTIC5kfBpIgHNFOO8Mf8wWZWXpNPe8c0uBElBY2UyY7BwB2UOnwcEimCOYMCNi/s1600/Connections.png&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot; class=&quot;tr-caption&quot;&gt;Fig. 4 - Nueva conexión&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;Realizado este paso, nos regresará a la figura N° 3. y en &quot;Examinar&quot; le asignaremos la ruta de los scripts, en este caso para crear todas las tablas y scripts usaremos el archivo &quot;InstallAllOracleASPNETProviders.sql&quot;.&lt;br&gt; &lt;table style=&quot;text-align: center; margin-left: auto; margin-right: auto&quot; class=&quot;tr-caption-container&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; align=&quot;center&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot;&gt;&lt;a style=&quot;margin-left: auto; margin-right: auto&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgngDNbAVKavw_9Tfelu5DHdIhvC-XMXr7wguI8PumO0PZBNasWKfEp4VcVjohFSjKEYSYdYyJMIKIsJ_gaW62fivcNQh0vMBMnM_pDAgE_kWchd696YT4ptsOPkt0TqB47tOQ8/s1600/Providers_SQL.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgngDNbAVKavw_9Tfelu5DHdIhvC-XMXr7wguI8PumO0PZBNasWKfEp4VcVjohFSjKEYSYdYyJMIKIsJ_gaW62fivcNQh0vMBMnM_pDAgE_kWchd696YT4ptsOPkt0TqB47tOQ8/s640/Providers_SQL.png&quot; width=&quot;640&quot; height=&quot;356&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot; class=&quot;tr-caption&quot;&gt;Fig. 5 - Seleccionar script&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;Luego ejecutamos el script y con esto ya tenemos creadas todas las tablas y script necesarios con lo que ya podemos empezar a trabajar.&lt;br&gt;&lt;br&gt;Para poder hacer uso de la tablas que acabamos de crear, solo necesitamos crear una conexión a la base de datos en nuestro &lt;em&gt;web.config&lt;/em&gt; con el nombre &lt;em&gt;OraAspNetConString&lt;/em&gt;&lt;br&gt;&lt;br&gt; &lt;table style=&quot;text-align: center; margin-left: auto; margin-right: auto&quot; class=&quot;tr-caption-container&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; align=&quot;center&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot;&gt;&lt;a href=&quot;http://lh3.ggpht.com/-jRDljypxdLk/T-I1q5qZJdI/AAAAAAAABJE/ph86k4P1SNY/s1600-h/Connections_Config%25255B11%25255D.png&quot;&gt;&lt;img style=&quot;display: inline&quot; title=&quot;Connections_Config&quot; alt=&quot;Connections_Config&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitduJFbQHiW6r_8FmIcvWCB-qNOqCPlUSzjBpPjD4KUcLjrswuYG6NRXJwGHlkpVwDOdGlf7Q2TtqmgFcxgIuWLsSSbgdQ3P08WahrAJgpXOiwJtopeV4lBB2D_x2Qnwi6bZm8/?imgmax=800&quot; width=&quot;640&quot; height=&quot;95&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot; class=&quot;tr-caption&quot;&gt;Fig. 6 - Cadena de conexión&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Le agregamos el tag &lt;remove&gt;para eliminar la definición existente de la cadena de conexión en nuestro machine.config.&lt;/remove&gt;&lt;br&gt;&lt;br&gt;Para probar todo vamos nuevamente a la herramienta de configuración de ASP .NET y podemos configurar la seguridad, roles y usuarios como se muestra en los artículos mencionados inicialmente.&lt;br&gt;&lt;/p&gt; &lt;table style=&quot;text-align: center; margin-left: auto; margin-right: auto&quot; class=&quot;tr-caption-container&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; align=&quot;center&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot;&gt;&lt;a style=&quot;margin-left: auto; margin-right: auto&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNUDJzWyUdPK5jmOKZjWaXhKePkev_EBHvd2rjZgYuJyQ-wrTX6zBoTqjNFt4MmOMKzMB4JROHZ2A3CEvcJXZSVpIuthodb3Mjz02pi96hBGaqs3fpGTmaAIljUQ8D5bpFagp2/s1600/Security.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNUDJzWyUdPK5jmOKZjWaXhKePkev_EBHvd2rjZgYuJyQ-wrTX6zBoTqjNFt4MmOMKzMB4JROHZ2A3CEvcJXZSVpIuthodb3Mjz02pi96hBGaqs3fpGTmaAIljUQ8D5bpFagp2/s640/Security.png&quot; width=&quot;640&quot; height=&quot;514&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style=&quot;text-align: center&quot; class=&quot;tr-caption&quot;&gt;Fig. 7 - Configuración Seguridad ASP .NET&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Con esto ya tenemos todo listo para trabajar en nuestra aplicación con los controles de login, espero les sea de utilidad, nos leemos el año que viene :).  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/4550316805504974423/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/4550316805504974423?isPopup=true' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/4550316805504974423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/4550316805504974423'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2011/12/implementar-membership-providers-con.html' title='Implementar Membership Providers con Oracle y Visual Studio 2010'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0X26mXnCRg3PJkLmrNYum_uQ2x11soH8ixZuDf2OfzlvLFdP0k022zVf4XXg-c9oQ_Qqhxu4amn-laVi34JvHnbl80ToMKwwDm6XBXS7RFkg-00hyphenhyphenNZfYBYUYVYwfiG7p3h3E/s72-c/Providers.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-772651738008639721</id><published>2011-10-19T15:04:00.000-05:00</published><updated>2011-10-19T15:14:09.718-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET AJAX"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><title type='text'>Actualizar controles fuera de un UpdatePanel</title><content type='html'>Nuevamente retomando el blog que últimamente ha estado un poquito de lado, pero a ver si ahora mantenemos la constancia en los posts.&lt;br /&gt;
&lt;br /&gt;
Ahora voy a comentarles sobre algo que es muy común cuando desarrollamos aplicaciones web y trabajamos con controles UpdatePanel, que es tener que actualizar otros controles que se encuentran definidos fuera del UpdatePanel y para lograrlo vamos a plantear un escenario y las formas de hacerlo.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Escenario:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Tenemos algo muy simple, un UpdatePanel con un TextBox y un Button asociado a un evento que enviará el texto a un Label que está fuera del UpdatePanel&lt;br /&gt;
&lt;pre class=&quot;brush: xhtml&quot;&gt;&lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt;
&lt;asp:scriptmanager id=&quot;scmPrincipal&quot; runat=&quot;server&quot;&gt;
    &lt;/asp:scriptmanager&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;asp:label id=&quot;lblMostrar&quot; runat=&quot;server&quot;&gt;
    &lt;/asp:label&gt;&lt;/div&gt;
&lt;div&gt;
&lt;asp:updatepanel runat=&quot;server&quot;&gt;
            &lt;contenttemplate&gt;
                &lt;asp:textbox id=&quot;txtEntrada&quot; runat=&quot;server&quot;&gt;
                &lt;asp:button id=&quot;btnActualizar&quot; onclick=&quot;btnActualizar_Click&quot; runat=&quot;server&quot; text=&quot;Actualizar texto&quot;&gt;
            &lt;/asp:button&gt;
        &lt;/asp:textbox&gt;&lt;/contenttemplate&gt;&lt;/asp:updatepanel&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/pre&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;protected void btnActualizar_Click(object sender, EventArgs e)
        {
            this.lblMostrar.Text = this.txtEntrada.Text;
        }
&lt;/pre&gt;
&lt;br /&gt;
Si tal y como está hacemos clic en el botón no pasará nada con el Label, así que para actualizarlo, les mostraré 2 formas de hacer:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Modo 1: Usando ScriptManager.RegisterDataItem&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Para lograr esto tenemos vamos a hacer uso del&amp;nbsp; &lt;a href=&quot;http://msdn.microsoft.com/es-es/library/bb311028.aspx&quot;&gt;PageRequestManager&lt;/a&gt;&amp;nbsp; que obtendrá los datos para ponerlos en el Label y tambien con el &lt;a href=&quot;http://msdn.microsoft.com/es-es/library/bb301423(v=VS.100).aspx&quot;&gt;RegisterDataItem&lt;/a&gt; que los enviará&amp;nbsp;como se muestra en el código.&lt;br /&gt;
&lt;pre class=&quot;brush: js&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(ObtenerDatosHandler);

        function ObtenerDatosHandler(sender, args) {
            var datos = args.get_dataItems();
            $get(&quot;lblMostrar&quot;).innerHTML = datos[&quot;txtEntrada&quot;];
        }
    
&lt;/script&gt;
&lt;/pre&gt;
&lt;br /&gt;
Y también en el evento del botón ponemos esto:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;protected void btnActualizar_Click(object sender, EventArgs e)
        {
            scmPrincipal.RegisterDataItem(this.txtEntrada, this.txtEntrada.Text);
        }
&lt;/pre&gt;
&lt;br /&gt;
Con esto ya podremos actualizar el Label fuera del UpdatePanel cuando presionemos el botón, pero también podemos hacerlo de otra forma, que detallo a continuación. &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Modo 2: Usando otro UpdatePanel&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Para esto necesitamos cambiar la estructura y poner el Label dentro de otro UpdatePanel pero con la propiedad UpdateMode=&quot;Conditional&quot; para actualizarlo desde el botón.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:xhtml&quot;&gt;&lt;div&gt;
&lt;asp:updatepanel id=&quot;upnActualizar&quot; runat=&quot;server&quot; updatemode=&quot;Conditional&quot;&gt;
            &lt;contenttemplate&gt;
                &lt;asp:label id=&quot;lblMostrar&quot; runat=&quot;server&quot;&gt;
            &lt;/asp:label&gt;
        &lt;/contenttemplate&gt;&lt;/asp:updatepanel&gt;
    &lt;/div&gt;
&lt;/pre&gt;
Y en el evento del botón tendríamos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;protected void btnActualizar_Click(object sender, EventArgs e)
        {
            this.lblMostrar.Text = this.txtEntrada.Text;
            this.upnActualizar.Update();
        }
&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Conclusión&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
De ambas formas obtendremos la misma funcionalidad, pero ya depende de cada uno como lo usa, dependiendo la estructura de sus formularios y casos.&lt;br /&gt;
&lt;br /&gt;
Espero les sirva de algo y bueno con esto voy retomando el blog, espero ir poniendo mas cosas.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/772651738008639721/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/772651738008639721?isPopup=true' title='3 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/772651738008639721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/772651738008639721'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2011/10/actualizar-controles-fuera-de-un.html' title='Actualizar controles fuera de un UpdatePanel'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-1987508593404771054</id><published>2010-04-24T01:43:00.001-05:00</published><updated>2010-04-24T01:43:20.619-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET 3.5"/><category scheme="http://www.blogger.com/atom/ns#" term="Office 2007"/><category scheme="http://www.blogger.com/atom/ns#" term="Office 2010"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2008"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2010"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7"/><title type='text'>Cuidado con las actualizaciones VS2008, VS2010, Office 2010 y sus dependencias.</title><content type='html'>&lt;p&gt;Ahora con el lanzamiento de Visual Studio 2010 RTM y Office 2010 RTM, toca siempre actualizarse, en el caso de VS2010, instale junto a VS2008 que ya tenia, debido a que pueden trabajar lado a lado sin problema alguno aparentemente y en caso del Office pues me toco sacar el Office 2007 que tenia y dejarlo únicamente con el 2010, aunque se pueden &lt;a href=&quot;http://www.mydigitallife.info/2009/09/02/how-to-install-office-2010-and-keep-office-2007-side-by-side-together/&quot; target=&quot;_blank&quot;&gt;instalar office 2007 y office 200 juntos&lt;/a&gt;, en mi caso no era necesario.&lt;/p&gt;  &lt;p&gt;Hasta este punto todo bien, pero cuando voy a trabajar con VS2008 al abrir un archivo .ASPX, &lt;strong&gt;se bloquea todo el VS2008&lt;/strong&gt; y no reacciona ante nada, solo terminando el proceso aunque funciona normal en archivos de código y pues así empezó la búsqueda del problema y una posible solución.&lt;/p&gt;  &lt;p&gt;En principio pensé que era problema del VS2010 ya que según el problema estaba &lt;a href=&quot;https://connect.microsoft.com/VisualStudio/feedback/details/320146/visual-studio-2008-editing-aspx-file-in-source-view-causes-studio-to-freeze&quot; target=&quot;_blank&quot;&gt;reportado en connect&lt;/a&gt; lo cual me llevo a un &lt;a href=&quot;http://weblogs.asp.net/scottgu/archive/2007/11/27/vs-2008-compatibility-with-older-vs-2005-add-in-packages.aspx&quot; target=&quot;_blank&quot;&gt;post de scottgu&lt;/a&gt; donde indica que se podría tratar de componentes que funcionan en una versión y pues en la siguiente no va, así que para solucionar esto la solución era correr VS2008 en modo seguro (&lt;strong&gt;devenv /safemode&lt;/strong&gt;), de cierta manera esto me funcionó aunque media hora después volvimos a lo mismo, así que buscar otra alternativa, en mi caso ya que puedes tener el mismo problema y esto le daría solución.&lt;/p&gt;  &lt;p&gt;Siguiendo con la búsqueda cambie de orientación para ver problemas con office ya que era algo que recientemente había instalado también, y pues se vi la luz.&lt;/p&gt;  &lt;p&gt;El problema que tenia radicaba en la actualización de office, el VS2008 se bloqueaba debido a que usaba componentes de office2007 y pues no los encontraba.&lt;/p&gt;  &lt;p&gt;Ahora la solución estaba a la vista, en este punto puedes volver al office 2007 nuevamente, pero como office 2010 esta bien chévere, puedes reparar el &lt;strong&gt;Componente Web de Autorización de Visual Studio, &lt;/strong&gt;esto lo encontramos es:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;C:\Program Files (x86)\Common Files\microsoft shared\OFFICE12\Office Setup Controller&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Ejecutamos el archivo SETUP.EXE (requiere permisos de administrador) y le damos reparar:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5jbz1k4tnklTHEwY9I9T_TE4rxDdkJ25nWfGGpLctW-xR_MqfKTydnMzaujMrQjBHhyphenhyphenDOfTZqghkL22aa0wh6CijAs5OynZ4qguDaTXtqK1d-tIIPlTBFr_DJc3LbQNvNGTNp/s1600-h/image%5B7%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNM8mCSQredIMxoXlA2L3Ny_Bc5CUVWcVyUKCJMp77oGL5s0KxwMA4uY1wji2VsvEx2-tGdBYhh2sGrTGiptj8yhTs0oeaYnPWTufDqZxGYiX02PlTDsjfws8YI_LXt7NxTdV/?imgmax=800&quot; width=&quot;572&quot; height=&quot;484&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Esperamos que termines y pues ya tenemos VS2008 de vuelta, si les pasa puede ser debido a esto o como menciono anteriormente, los componentes no compatibles, también hay un &lt;a href=&quot;http://weblogs.asp.net/scottgu/archive/2008/02/08/vs-2008-web-development-hot-fix-roll-up-available.aspx&quot; target=&quot;_blank&quot;&gt;hotfix&lt;/a&gt; para problemas similares, cualquiera de estos te puede ser de ayuda.&lt;/p&gt;  &lt;p&gt;Saludos!&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/1987508593404771054/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/1987508593404771054?isPopup=true' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/1987508593404771054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/1987508593404771054'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2010/04/cuidado-con-las-actualizaciones-vs2008.html' title='Cuidado con las actualizaciones VS2008, VS2010, Office 2010 y sus dependencias.'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFNM8mCSQredIMxoXlA2L3Ny_Bc5CUVWcVyUKCJMp77oGL5s0KxwMA4uY1wji2VsvEx2-tGdBYhh2sGrTGiptj8yhTs0oeaYnPWTufDqZxGYiX02PlTDsjfws8YI_LXt7NxTdV/s72-c?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-1687439343362122998</id><published>2010-04-18T03:41:00.001-05:00</published><updated>2010-04-18T03:44:42.860-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET Framework 3.5"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET 3.5"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET AJAX"/><category scheme="http://www.blogger.com/atom/ns#" term="CSS"/><title type='text'>AjaxControlToolkit CalendarExtender y Problemas con los estilos</title><content type='html'>&lt;p&gt;Hace algún tiempo que no escribía y pues ahora estuve trabajando en un proyecto y me tope con un problema un poco extraño en el control CalendarExtender del &lt;a href=&quot;http://ajaxcontroltoolkit.codeplex.com/&quot; target=&quot;_blank&quot;&gt;AjaxControlToolkit 3.5&lt;/a&gt;, pasaba que al agregarlo no me mostraba todos los días, únicamente me mostraba 5 días como muestro en la imagen:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifNPQjk9l1KmazOeo75nm-nP1ci_YdGimq0baojNReR7G2aRhyphenhyphenkA_dKa-DoJlJMrTmj3YmbeiijDIzLgkwnzGhq8ysaNv7BHr0DFbVLcR8iVFio6mev0qXIMb6ANP89YRkHKnv/s1600-h/image%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioisX3-xLtbxMHJyREpMCzlnktB61I1ZUpjFK9ELVKKA2YQo1nlH1VgYBIvFqoW6LBtbUVv9-rQtOcsTk0gOIBOaiyg5KEOZ2RFPHNJVHMdHBePBKoF8lEOoUhRDnVi40Z5fSV/?imgmax=800&quot; width=&quot;192&quot; height=&quot;221&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Pensé que podía ser problema del control, pero al probarlo en otro proyecto no me daba este problema, indagando descubrí que esto se debe a las hojas de estilo que usa este control internamente y pues los estilos que tengo en mi aplicación sobrescribían los originales del control y le daban este comportamiento.&lt;/p&gt;  &lt;p&gt;El estilo que usa el control es el siguiente:&lt;/p&gt;  &lt;div style=&quot;background-color: white; color: black&quot;&gt;   &lt;div style=&quot;background-color: white; color: black&quot;&gt;     &lt;pre&gt;#container table{&lt;br /&gt;   //...&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Así que si tienen en su aplicación hojas de estilo que usen este identificador deben cambiarle de nombre para no afectar los estilos del calendario o en todo caso agregarle estilo propio al control para que pueda usarlo, de esta manera: &lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;background-color: white; color: black&quot;&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_container&lt;/span&gt;{&lt;br /&gt;    &lt;span style=&quot;color: red&quot;&gt;width&lt;/span&gt;:&lt;span style=&quot;color: blue&quot;&gt;250px&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_body &lt;/span&gt;{&lt;br /&gt;    &lt;span style=&quot;color: red&quot;&gt;width&lt;/span&gt;:&lt;span style=&quot;color: blue&quot;&gt;250px&lt;/span&gt;;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;y en el calendario asignarle esta clase &lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;background-color: white; color: black&quot;&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #a31515&quot;&gt;ajax&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #a31515&quot;&gt;CalendarExtender&lt;/span&gt; &lt;span style=&quot;color: red&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;TextBox_CalendarExtender&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: red&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: red&quot;&gt;Enabled&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;True&amp;quot;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: red&quot;&gt;TargetControlID&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;TextBox&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: red&quot;&gt;CssClass&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;quot;&lt;strong&gt;calendario&lt;/strong&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #a31515&quot;&gt;ajax&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #a31515&quot;&gt;CalendarExtender&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;De esta manera logro que se visualice la parte restante de mi calendario, pero si desean pueden personalizar todos los estilos del calendario para cambiar la forma en que se ve, les dejo las clases para que puedan personalizarlo a su gusto: &lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;background-color: white; color: black&quot;&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_header &lt;/span&gt;{  }&lt;br /&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_title &lt;/span&gt;{ }&lt;br /&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_dayname &lt;/span&gt;{ }&lt;br /&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_day &lt;/span&gt;{ } &lt;br /&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_hover .ajax__calendar_day &lt;/span&gt;{ }&lt;br /&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_hover .ajax__calendar_month &lt;/span&gt;{ }&lt;br /&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_hover .ajax__calendar_year &lt;/span&gt;{ }&lt;br /&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_active &lt;/span&gt;{ }&lt;br /&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_today &lt;/span&gt;{ }&lt;br /&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_other .ajax__calendar_day &lt;/span&gt;{ }&lt;br /&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_hover .ajax__calendar_today &lt;/span&gt;{ }&lt;br /&gt;&lt;span style=&quot;color: #a31515&quot;&gt;.calendario .ajax__calendar_hover .ajax__calendar_title &lt;/span&gt;{ } &lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Espero les sea de utilidad, hasta el nuevo post.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/1687439343362122998/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/1687439343362122998?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/1687439343362122998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/1687439343362122998'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2010/04/ajaxcontroltoolkit-calendarextender-y.html' title='AjaxControlToolkit CalendarExtender y Problemas con los estilos'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioisX3-xLtbxMHJyREpMCzlnktB61I1ZUpjFK9ELVKKA2YQo1nlH1VgYBIvFqoW6LBtbUVv9-rQtOcsTk0gOIBOaiyg5KEOZ2RFPHNJVHMdHBePBKoF8lEOoUhRDnVi40Z5fSV/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-1643802404780731684</id><published>2010-01-21T19:19:00.001-05:00</published><updated>2010-01-21T19:19:19.719-05:00</updated><title type='text'>Reportes Jerárquicos en Crystal Reports 2008</title><content type='html'>&lt;p&gt;Nuevamente por acá compartiendo algo que me resulto muy útil a la hora de crear reportes de este tipo, suele pasar muchas veces que tenemos organizados nuestros datos de forma jerárquica, como por ejemplo la estructura organizacional de una empresa.&lt;/p&gt;  &lt;p&gt;La forma de crear este tipo de reportes es muy sencilla, voy a mostrar un ejemplo con la siguiente tabla de datos:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiupCgYHaxRlNPN7ZfPOY1tCZGYSRrEhTG1WVW9eEpVeBK-YxZMWTHsYO302UN1_0YgNpzpwLJYQ7pzxurl-MwAOtDO1S4tsju3e6kTeVN4zH3Eew-nfNwzfTZDit-Vk8PE0jb9/s1600-h/Tabla%5B3%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px&quot; title=&quot;Tabla&quot; border=&quot;0&quot; alt=&quot;Tabla&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg7iselYsvFhbESW9eH_Bf5zN8dmwLK9hZ8bRwdDQcBwZ06KUqtaRA_RgZv-T_ctDqZAk15WwzBH8TCM5CjlNbTlRqw3v536WQZNUaaDQAyXcyFNJXB5Ted20aX7ryK7gS-w2p/?imgmax=800&quot; width=&quot;342&quot; height=&quot;214&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Como se puede apreciar tenemos la columna EstructuraID que vendría a ser la llave del registro y la columna PEstructuraID que vendría a ser la llave del registro padre del cual depende ese registro, los que tiene valores NULL serán los registros raíz o padres.&lt;/p&gt;  &lt;p&gt;Ahora crearemos un reporte que trabaje con esta tabla y lo agrupamos por EstructuraID como se muestra en la imagen&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7YBPUf6tHtEyjiC1xfRQSrOGLwq9lcdTq9IODw8vj-7W-hp6j3jk-G7BWIOxottl-qMDaSXMqYo1_MuTAhA8DnlsOfe9vbsoolHKBVP1mZjnpxeB8oVOvP27mr4ypSF0TF3WG/s1600-h/image%5B3%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbs2ZSafcZCCWvPefXQfW3wmExVaPUQV1XjRAmYcLp_mkw-CuYsm28fkHoM0EDQ3peBnt5kT1Vw2_l2igwHHHQbeIurG53yT4Iv76aur2KiIKU44U_jknLAY4BOmnN73yaNiCq/?imgmax=800&quot; width=&quot;597&quot; height=&quot;449&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Al finalizar nuestro reporte nos quedará similar a esto&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgHM_yK5xunFDZlzVK_tHEq0Jf4mK5gEeYjwWBfHAPZFmC1_JsjcGpu-XDFGtJbOXpOOj7l0zm_p4bRnhI-co3H0RJdT64gOJgiDZL-J10Z9nh8YHDZPUJYhoC9oeqOLRqsUwf/s1600-h/image%5B11%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6Yce45BE5hRDeGJ5kx6oFtGTKHfSEYqgqhgBtRVT4FuS6tDtxhcVi0iz5gi8K-G5jLBzpRIbdvwF-BPYgRzQuySNr5PgJOhovIlI789oZu89oytC8IRLeOG2cGw-TEJgeC-rr/?imgmax=800&quot; width=&quot;554&quot; height=&quot;336&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hasta aquí no se ha hecho nada en especial, mas que crear un simple reporte agrupado, ahora procederemos a darle una estructura jerárquica, con una opción que viene en Crystal en el menú Informe-&amp;gt;Opciones de agrupamiento Jerárquico:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX6i8UuFm9Ua82VqtVIr6EQD9Lfeumbk-W2D1l4s76AT_BdIazWxsKiLosKCJBOiX61acLUjL2ffPQ6FkAFSvrRS9Rz8fGdYlJL6CSwQ6kIs_gwz74zWxaKevMDjZD54EvFdeM/s1600-h/image%5B15%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE3zINjg94xDoIiALkFDbCXytuodHQXkfcJSKemQ0Rb9vWoKtTX3bdkT2LhoEuB29VE1_tUKB63RSizCSr8fCsTkBo09-X_ba_n4KpOnMKJ23zs96cOj6YF899HCFegsK8fjfU/?imgmax=800&quot; width=&quot;380&quot; height=&quot;461&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Al seleccionar esta opción se nos pedirá que indiquemos la columna que contiene la llave del registro padre y la sangría a aplicar para los subniveles:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSER0aXwP3aOz-6D2mCQshUV17qu1aZKU4jSEvniJ4kB24dTuVCXLW_1_-1HoegimcMOyq_7q3KgxhojZPdOa3T2fwkm7STla_Jqss4WDFh2RXouxRFwzHXmiJdy9X6zCjAahC/s1600-h/image%5B19%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7_lT5WAGW5pnhSUmZBsar3XQtcXYFBL2t5CtXd8bfKLHqe20YSrBE7TymnPiJZHlwgO6UbVNrAXzksViTGSdaw0PN9py-7yndHb80uvU3GlJwPjRTKAkkH0Dy359CyhdxS3CO/?imgmax=800&quot; width=&quot;509&quot; height=&quot;266&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Y con esto automáticamente tendremos un reporte con estructura jerárquica como lo deseamos, ya ahí se podrán hacer los ajustes de diseño respectivos para que quede como quieran mostrar.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt7DGX61iZYml3XxIgyjUE84RyY_GG6CgnshV8odbzwzQarzY76cBcqxaHy4arTo0IDkbyKb6ZbrsY-4ND-AZ9p3sgxzw4IEFNHaXHOg8gfZVBLSn1RA9atkgFJe3NfJhQihyphenhyphenq/s1600-h/image%5B23%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDpd27JEP-5M8pUUeu3RVsoWfcjSpnTFpgPef8Na5nlnWOPJwsrrzfVhm5Ct7tq3yjqQDJ_iEdCrxHeX0-gKeC3Hwp958C3B8FoimL2XEY5DUpqyDak9_AjG5SIG0X06VpRMm2/?imgmax=800&quot; width=&quot;466&quot; height=&quot;443&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Espero les sirva este aporte, por cierto también funciona en Crystal XI.&lt;/p&gt;  &lt;p&gt;Saludos!&amp;#160; &lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/1643802404780731684/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/1643802404780731684?isPopup=true' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/1643802404780731684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/1643802404780731684'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2010/01/reportes-jerarquicos-en-crystal-reports.html' title='Reportes Jerárquicos en Crystal Reports 2008'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg7iselYsvFhbESW9eH_Bf5zN8dmwLK9hZ8bRwdDQcBwZ06KUqtaRA_RgZv-T_ctDqZAk15WwzBH8TCM5CjlNbTlRqw3v536WQZNUaaDQAyXcyFNJXB5Ted20aX7ryK7gS-w2p/s72-c?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-5789305896581713800</id><published>2009-09-29T19:30:00.001-05:00</published><updated>2009-09-29T19:31:35.722-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="Recursos"/><title type='text'>Editor de Texto en ASP .NET MVC</title><content type='html'>&lt;p&gt;Cuando se desarrolla una aplicación que va a contender secciones donde se necesita ingresar texto con formato, siempre es muy útil un editor de texto que nos permita esto, estos se usan en diversos tipos de aplicaciones, en esta oportunidad les mostraré como usar el &lt;a href=&quot;http://ckeditor.com/&quot; target=&quot;_blank&quot;&gt;CKEditor&lt;/a&gt; con ASP .NET MVC.  &lt;p&gt;Lo primero que hay que hacer es &lt;a href=&quot;http://download.cksource.com/CKEditor/CKEditor/CKEditor%203.0/ckeditor_3.0.zip&quot; target=&quot;_blank&quot;&gt;descargarse&lt;/a&gt; las librerías, descomprimirlo y copiarlo en el directorio /Content/js/ luego agregar la referencia al archivo ckeditor.js en la vista donde se va a usar o en la masterpage si se desea para toda la aplicación, seria algo similar a esto&lt;pre&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;script&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;src&lt;/span&gt;=&lt;span style=&quot;color: #0000ff&quot;&gt;&quot;../../Content/js/ckeditor/ckeditor.js&quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;type&lt;/span&gt;=&lt;span style=&quot;color: #0000ff&quot;&gt;&quot;text/javascript&quot;&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Con esto ya tenemos la referencia al script a usar, ahora para ponerlo a funcionar agregamos lo siguiente&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre&gt;&amp;lt;%= Html.TextArea(&quot;&lt;span style=&quot;color: #8b0000&quot;&gt;Descripcion&lt;/span&gt;&quot;, &quot;&lt;span style=&quot;color: #8b0000&quot;&gt;&lt;/span&gt;&quot;, &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; { @name = &quot;&lt;span style=&quot;color: #8b0000&quot;&gt;Descripcion&lt;/span&gt;&quot; })%&amp;gt;&lt;br /&gt;&amp;lt;script type=&quot;&lt;span style=&quot;color: #8b0000&quot;&gt;text/javascript&lt;/span&gt;&quot;&amp;gt;&lt;br /&gt;                &lt;span style=&quot;color: #008000&quot;&gt;//&amp;lt;![CDATA[&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                &lt;span style=&quot;color: #008000&quot;&gt;// This call can be placed at any point after the&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #008000&quot;&gt;// &amp;lt;textarea&amp;gt;, or inside a &amp;lt;head&amp;gt;&amp;lt;script&amp;gt; in a&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #008000&quot;&gt;// window.onload event handler.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                &lt;span style=&quot;color: #008000&quot;&gt;// Replace the &amp;lt;textarea id=&quot;editor&quot;&amp;gt; with an CKEditor&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #008000&quot;&gt;// instance, using default configurations.&lt;/span&gt;&lt;br /&gt;                CKEDITOR.replace(&quot;&lt;span style=&quot;color: #8b0000&quot;&gt;Descripcion&lt;/span&gt;&quot;);&lt;br /&gt;&lt;br /&gt;                &lt;span style=&quot;color: #008000&quot;&gt;//]]&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre&gt;Con esto podemos logra algo así&lt;/pre&gt;&lt;pre&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1TCgxFkOqscOKT-Fk_Xf5jyTAGtpqvLlZbclqwu4LS2RPCNiVLetIpmQOn2ob3I7360FdDE4pHh8oWZGw05tydcBMrqsF9u3a5IH7e2HXwA-gv1ThJWu_3d4xnOjIO7G-sNfK/s1600-h/ckeditor%5B3%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;ckeditor&quot; border=&quot;0&quot; alt=&quot;ckeditor&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaP131W_2yyr1ZKOehiuU_MLLlNOn-oIL3-bcHahzLOEn94dSAFxOrZK16LJe9PIcynVlb3UAC53oR1L1whyphenhyphenVSvjrx12FvkYyXQeeNq5Gb-zCDORzTMYnWR31cqCtacoWGmOAm/?imgmax=800&quot; width=&quot;493&quot; height=&quot;507&quot;&gt;&lt;/a&gt;&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Este editor tiene muchas opciones, como mostrar solo algunos comandos, skins, entre otros, los invito a revisarlo, esta muy bueno&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/5789305896581713800/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/5789305896581713800?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/5789305896581713800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/5789305896581713800'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2009/09/editor-de-texto-en-asp-net-mvc.html' title='Editor de Texto en ASP .NET MVC'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaP131W_2yyr1ZKOehiuU_MLLlNOn-oIL3-bcHahzLOEn94dSAFxOrZK16LJe9PIcynVlb3UAC53oR1L1whyphenhyphenVSvjrx12FvkYyXQeeNq5Gb-zCDORzTMYnWR31cqCtacoWGmOAm/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-7713883895507060065</id><published>2009-09-20T13:43:00.002-05:00</published><updated>2009-09-20T15:51:05.644-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET Framework 3.5"/><category scheme="http://www.blogger.com/atom/ns#" term="Patterns Practices"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips andTricks"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2008"/><title type='text'>The requested database is not defined in configuration.</title><content type='html'>&lt;p&gt;Si alguna vez están trabajando con &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/cc467894.aspx&quot; target=&quot;_blank&quot;&gt;Enterprise Library&lt;/a&gt; o &lt;a href=&quot;http://repositoryfactory.codeplex.com/&quot; target=&quot;_blank&quot;&gt;Repository Factory&lt;/a&gt;, quizá les pueda dar este error al momento de hacer la llamada a la base de datos, es por que hay que definir algunos elemento en el nuestro archivo de configuración del proyecto que hace la referencia a la clase que se accede a la base de datos.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;En mi caso me ha funcionado lo siguiente:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Agregar los tags en configSections.&lt;/p&gt;&lt;pre&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;configSections&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;  &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;section&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;repositoryFactory&quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;type&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;Microsoft.Practices.Repository.Configuration.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;RepositoryFactorySection, Microsoft.Practices.Repository, Version=1.0.0.0, &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Culture=neutral, PublicKeyToken=null&quot;&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;  &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;section&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;dataConfiguration&quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;type&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;Microsoft.Practices.EnterpriseLibrary.Data.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot;&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;configSections&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Ahora definiremos la conexión por defecto de la aplicación&lt;/p&gt;&lt;pre&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;dataConfiguration&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;defaultDatabase&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;DefaultConnectionString&quot;&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;/span&gt;&lt;br /&gt;Esta cadena de conexión debe esta definida dentro de ConnectionStrings&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;add&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;DefaultConnectionString&quot;&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;color:#ff0000;&quot;&gt;connectionString&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;Data Source=.;Initial Catalog=Database;Integrated Security=True&quot;&lt;/span&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;color:#ff0000;&quot;&gt;providerName&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;System.Data.SqlClient&quot;&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Teniendo definido esto ahora cuando hagamos llamadas a nuestra clase, en mi caso usando &lt;a href=&quot;http://repositoryfactory.codeplex.com/&quot; target=&quot;_blank&quot;&gt;Repository Factory&lt;/a&gt; seria así:&lt;/p&gt;&lt;pre&gt;ClaseRepository repository = &lt;span style=&quot;color:#0000ff;&quot;&gt;new&lt;/span&gt; ClaseRepository(&quot;&lt;span style=&quot;color:#8b0000;&quot;&gt;DefaultConnectionString&lt;/span&gt;&quot;);&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Con esto ya no deberíamos tener ese error, al menos en mi caso ha funcionado si tienen mas aportes sobre el tema y posibles soluciones, agradeceré sus comentarios.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/7713883895507060065/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/7713883895507060065?isPopup=true' title='3 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/7713883895507060065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/7713883895507060065'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2009/09/si-alguna-vez-estan-trabajando-con.html' title='The requested database is not defined in configuration.'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-2066316341031248402</id><published>2009-08-31T23:33:00.001-05:00</published><updated>2009-08-31T23:35:03.486-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Tips andTricks"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7"/><category scheme="http://www.blogger.com/atom/ns#" term="x64"/><title type='text'>Como permitir leer Archivos Excel 2007 desde Sistemas de 64 bits (x64)</title><content type='html'>&lt;p&gt;Quizá esto le pueda pasar cuando trabaje ya sea en Windows Vista o en mi caso Windows 7 x64, he intentado leer un archivo Excel 2007 desde una aplicación en .NET y me daba el siguiente error:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;El proveedor Microsoft.ACE.OLEDB.12.0 no está registrado en el equipo local. o en ingles &lt;/p&gt;    &lt;p&gt;The Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Pues resulta que esto es debido a que no hay controladores de office para x64, asi que hay que cambiar el tipo de compilación de la aplicación, que por defecto esta en “Any CPU” a “x86”, esto en las propiedades-&amp;gt;Build.&lt;/p&gt;  &lt;p&gt;Con esto ya se pueden leer los archivos con total normalidad, espero les sirva de algo.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/2066316341031248402/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/2066316341031248402?isPopup=true' title='3 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/2066316341031248402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/2066316341031248402'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2009/08/como-permitir-leer-archivos-excel-2007.html' title='Como permitir leer Archivos Excel 2007 desde Sistemas de 64 bits (x64)'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-3329045298871615166</id><published>2009-08-31T02:07:00.001-05:00</published><updated>2009-08-31T02:07:16.837-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET Framework 3.5"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET 3.5"/><category scheme="http://www.blogger.com/atom/ns#" term="novedades"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2008"/><title type='text'>Usando Client Application Services Parte 02</title><content type='html'>&lt;p&gt;En el &lt;a href=&quot;http://rilaros.blogspot.com/2009/08/usando-client-application-services.html&quot; target=&quot;_blank&quot;&gt;post anterior&lt;/a&gt; hablábamos de como crear una aplicacion que nos permita manejar los accesos de los usuarios ahora veremos como podemos utilizar el servicio de membresia de ASP .NET en una aplicacion Windows Forms que era lo que no se tenia disponible antes.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. Creando la aplicación Cliente&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Vamos a crear una aplicación Windows Forms sencilla como se ve en la imagen:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEEHvKZAjG-CCORFVhO03l3pdvQoztg_5pxe6fSU1vTqhQfhtJpb0nJ32VW0YD8L3nQDOc2MpqleFrkHzkdTcbHdH_pWixzPSWffZ8R131HXtgSkaeEr31vuOmy8M7V2j0g9C_/s1600-h/image3.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDaQDO7_ljkr9s4QS3SQpW044jmsaF33dkPeGJI4a5oEw0C2_V352TW7NPIOgjXWu0nuZXQPm2jtktEUKFFOL2g7DVm4bmpwONkOkYfoMlzoXlrIYS3R12hnD5bYXDh9X8vlVo/?imgmax=800&quot; width=&quot;348&quot; height=&quot;229&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Como esto es solo de forma ilustrativa no necesitamos crear una aplicacion compleja.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. Enlazando el Servicio&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ahora vamos a integrar el servicio que habiamos creado &lt;a href=&quot;http://rilaros.blogspot.com/2009/08/usando-client-application-services.html&quot; target=&quot;_blank&quot;&gt;anteriormente&lt;/a&gt; para poder hacer uso de la validacion de usuarios, para ellos nos vamos al proyecto que acabamos de crear y hacemos clic derecho-&amp;gt;Propiedades, ahi podemos apreciar al lado izquierdo que tenemos un tab Services, ahi es donde se habilita Client Application Services, marcamos el check e ingresamos los datos como se muestra en la imagen:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYvR6G40XlMnXgOdiD5IwJwcrRifQWmstBHRQgOVr66a01a-FR2pc_g6SvWz9FAPXkT2Mom77GxJsdIHxCYXJVtN9D9FO8j1IXH6cQ4_3YIz42qfnrdT6KhwxlwCs1BHCgrLiZ/s1600-h/image8.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvlUDUvsxL3bk4-ZsB8HKesPK2ZrJpOBleWvnUYmqrgxgtGNikSvQthTxf6Lxrno9Dw_D3PpgEfG1FrTIwN4huE4xXNsodl4TasGw2KWdQKoJE88p5WG-P0hePWw3iEX4VvlW_/?imgmax=800&quot; width=&quot;604&quot; height=&quot;412&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Tambien debemos agregar una referencia a &lt;strong&gt;System.Web&lt;/strong&gt;, en nuestro proyecto clic derecho-&amp;gt;Add Reference en el tab NET buscamos el ensamblado y lo agregamos, esto es para que podamos hacer uso de Clase &lt;strong&gt;Membership&lt;/strong&gt; en nuestra aplicacion.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. Validando Usuarios&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Vamos a trabajar en el evento Load del formulario, dentro de este pondremos el siguiente codigo para validar las credenciales de un usuario si son correctas se mostrara el formulario, caso contrario se mostrara un mensaje y cerrará la aplicacion.&lt;/p&gt;  &lt;pre&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (!Membership.ValidateUser(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;User&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;Password&lt;/span&gt;&amp;quot;))&lt;br /&gt;{&lt;br /&gt;    MessageBox.Show(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;Usuario no valido&lt;/span&gt;&amp;quot;);&lt;br /&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.Close();&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Con esto ya podemos validar los datos del usuario, incluso validar si pertene a algun Rol, todo lo que se podia hacer en ASP .NET 2.0 en cuanto a usuarios, ahora ya esta disponible para usar por otro tipo de aplicaciones, no solo esto, sino que tambien permite centralizar la administracion de usuarios.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Espero haya sido de ayuda estos post, si hubiese algo que no quedo claro, no duden en dejar sus&amp;#160; comentarios, tambien adjunto el codigo fuente del ejemplo para que puedan revisarlo.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://mhetas.net/Files/ClientApplicationServiceDemo.zip&quot; target=&quot;_blank&quot;&gt;Descargar Código Ejemplo&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/3329045298871615166/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/3329045298871615166?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/3329045298871615166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/3329045298871615166'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2009/08/usando-client-application-services_31.html' title='Usando Client Application Services Parte 02'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDaQDO7_ljkr9s4QS3SQpW044jmsaF33dkPeGJI4a5oEw0C2_V352TW7NPIOgjXWu0nuZXQPm2jtktEUKFFOL2g7DVm4bmpwONkOkYfoMlzoXlrIYS3R12hnD5bYXDh9X8vlVo/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-8671098375880622763</id><published>2009-08-31T01:38:00.001-05:00</published><updated>2009-08-31T01:44:12.302-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET Framework 3.5"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP .NET"/><category scheme="http://www.blogger.com/atom/ns#" term="novedades"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2008"/><title type='text'>Usando Client Application Services Parte 01</title><content type='html'>&lt;p&gt;&lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Cuando salió .NET Framework 2.0, una de las novedades que traía consigo era la posibilidad de usar una serie de controles y clases para la gestión de usuarios, perfiles y roles, con las características típicas de una aplicación con manejo de usuarios.&lt;/p&gt;  &lt;p&gt;Pues hasta ahí todo bien, pero esto estaba disponible solo para las aplicaciones Web, no se podía usar en aplicaciones Windows, así que en este tipo de aplicaciones teníamos que hacer trabajo extra para la gestión de usuarios.&lt;/p&gt;  &lt;p&gt;Ahora con la salida del .NET Framework 3.5, pues se van suavizando las cosas, no es que tengamos los mismos controles disponibles para poder hacer esto, sino que acá podemos centralizar el manejo de usuarios, con lo que se conoce como Client Application Services.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Que es Client Application Services?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Es un concepto que permite integrar las aplicaciones cliente como Windows Forms con los servicios de Membresia de ASP .NET, es decir, tendremos un servicio desde donde se administren los usuarios y desde una aplicación Winforms podemos referenciarlo y ya podemos autenticar usuarios y todo lo que las clases de Membresia nos puedan permitir.&lt;/p&gt;  &lt;p&gt;Ejemplo Practico&lt;/p&gt;  &lt;p&gt;Para que todo este tema quede claro, aquí les explicare como funciona para que puedan implementarlo.&lt;/p&gt;  &lt;p&gt;Si desean conocer como funciona esto del manejo de usuarios y perfiles, los invito a revisar estos artículos que publique hace algunos años:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.elguille.info/colabora/NET2005/RiLaRos_Personalizacion.htm&quot; target=&quot;_blank&quot;&gt;Personalización ASP .NET Parte 01&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.elguille.info/colabora/NET2006/RiLaRos_Personalizacion_Parte02.htm&quot; target=&quot;_blank&quot;&gt;Personalización ASP .NET Parte 02&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Estos artículos estaban para la versión 2.0 de asp .net, pero también son validos trabajarlo en VS 2008.&lt;/p&gt;  &lt;p&gt;Volviendo al tema, vamos a iniciar con la aplicación de ejemplo.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. Creación de la base de datos&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Esta base de datos nos servirá para almacenar los usuarios, esto se hace con un utilitario que viene con el .NET Framework, lo que hay que hacer es ir a Inicio-&amp;gt;Todos los Programas-&amp;gt;Microsoft Visual Studio 2008-&amp;gt;Visual Studio Tools y abrir el Command Prompt, nos abrirá una consola DOS, donde escribiremos asp_regsql, les aparecerá una un wizard que creara la base de datos automáticamente, solo hay que darle siguiente hasta donde nos pida datos del servidor y base de datos, podemos dejar que cree la base de datos con el nombre por default o podemos asignarle cualquier nombre como se muestra en la imagen.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3wN4rhihJYtiEN6WYChbUKDKgiPfprreieN0tzOwZGyafdc4-S1sppGtuwXBw09Ou_LyUkJYVgmUjTU7C9tBTwwAZ5vSniD05-PIei2v7MOPi4DTLmqv76o3ZjgWKRiKOOVAL/s1600-h/image4.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio1wI8WxJNzEyfuC7AJuFbPWHYwkIs4l6CjvFTL7sy9AJt2lnpfDFRHPWBUUTkirsUnlfDUm1emTZwf8IWv8nyjXizv935X1HHVAWmyTTbEjvmY5t2PW9_iTmPLjkpHYvk5qlZ/?imgmax=800&quot; width=&quot;592&quot; height=&quot;458&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Una vez ingresados los datos, damos siguiente y finalizar, con esto ya tenemos nuestra base de datos lista para usarla en nuestra aplicación de ejemplo.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. Creación del Servicio&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ahora crearemos el servicio que se conectara a la base datos e interactúa con la aplicación para el manejo de usuarios, para esto crearemos un nuevo proyecto del tipo ASP .NET Web Service Application.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEIaWIaaj9v-8fWuyqn1zUPpfY9588Al40Y5k6PHjYBT1_msmr8_RGU95tA58KUhEHh9YYmgkX9c_4nyb_6z8Gm6LRDDCFsX8dFKa5DdNLqZf7p-H2Efiy7VvT_ku-KQYGfrVl/s1600-h/image11.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAi3QZdclDQBxxjoaHgrlJ1-m_vqwkLyB85rQJGjAmjrQQmc0brriwlf8e2QaBbT4_YO3iRlHi3yHRQJIXfjJNhmCIaRERCcPR8waoriWRYFv2Qs5Led2GsAN9UaYYW_8eXDa2/?imgmax=800&quot; width=&quot;592&quot; height=&quot;422&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Con esto se crea una plantilla del servicio, lo cual no usaremos, ya que la aplicación Windows se conectara directamente.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. Configuración de Roles y Usuarios&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ahora configuraremos nuestros usuarios y roles que tendrán acceso a nuestra aplicación, para esto usaremos el ASP .NET Configuration Tool que pueden ubicarlo en el menú Project-&amp;gt;ASP .NET Configuration que se encuentra al final del menú.&lt;/p&gt;  &lt;p&gt;Nos abrirá una venta del navegador que nos permitirá configurar todo, esto es bien intuitivo así que lo resumiré, hay que ir a la pestaña de Seguridad y vamos al enlace donde dice Utilice el Asistente para la configuración de seguridad para configurar la seguridad paso a paso. en Método de Acceso seleccionamos desde Internet, Habilitamos las funciones o roles para la aplicación, agregamos 02 roles (Administrador, Cliente), creamos 02 usuarios también, no agregamos ninguna regla de acceso y al finalizar vuelve a la pantalla de seguridad, ahí nos vamos a administrar usuarios-&amp;gt;editar funciones y asignamos un usuario al Rol Administrador y el otro al Rol Cliente y cerramos el navegador.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4. Habilitando Client Application Services&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Para poder hacer que este servicio pueda dar respuesta a aplicaciones que se comuniquen con el hay que agregar el siguiente código al archivo Web.config&lt;/p&gt;  &lt;pre&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;system.web.extensions&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;scripting&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;webServices&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;authenticationService&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;enabled&lt;/span&gt;=&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;requireSSL&lt;/span&gt;=&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;quot;false&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;roleService&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;enabled&lt;/span&gt;=&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;webServices&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;scripting&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;system.web.extensions&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Nos leemos en la siguiente entrada.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/8671098375880622763/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/8671098375880622763?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/8671098375880622763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/8671098375880622763'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2009/08/usando-client-application-services.html' title='Usando Client Application Services Parte 01'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio1wI8WxJNzEyfuC7AJuFbPWHYwkIs4l6CjvFTL7sy9AJt2lnpfDFRHPWBUUTkirsUnlfDUm1emTZwf8IWv8nyjXizv935X1HHVAWmyTTbEjvmY5t2PW9_iTmPLjkpHYvk5qlZ/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-6662571459798548861</id><published>2009-06-10T17:19:00.001-05:00</published><updated>2009-06-10T17:21:30.503-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET Framework 3.5"/><category scheme="http://www.blogger.com/atom/ns#" term="Deployment"/><category scheme="http://www.blogger.com/atom/ns#" term="IIS"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2008"/><category scheme="http://www.blogger.com/atom/ns#" term="WCF"/><title type='text'>WCF: Esta colección ya contiene una dirección con el esquema http. Sólo puede haber una dirección por esquema en esta colección</title><content type='html'>&lt;p&gt;“This collection already contains an address with scheme http. There can be at most one address per scheme in this collection.“&lt;/p&gt;  &lt;p&gt;Pues recientemente me he topado con este mensaje de error, me ha salido al momento de hacer deployment de un servicio WCF, en modo local no tenia problemas, indagando un poco encontré que se trata de como IIS aloja los servicios, para lo cual permite una sola dirección por esquema (HTTP), por lo cual en servidores de hosting compartidos nos da este problema, en mi caso lo solucione creando una clase Factory que herede de &lt;strong&gt;ServiceHostFactory &lt;/strong&gt;y sobrescriba el método que devuelve el&amp;#160; &lt;strong&gt;ServiceHost&lt;/strong&gt; con solo una dirección:&lt;/p&gt;  &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:0e58c394-a587-4eb4-b6b7-3bcccfcc56ef&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot;background-color:#FFFFCE;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;&quot;&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; CustomHostFactory : ServiceHostFactory&lt;br /&gt;{&lt;br /&gt;   &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;override&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)&lt;br /&gt;   {&lt;br /&gt;       Uri webServiceAddress &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; Uri(&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;http://dominio.com/Service.svc&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;);&lt;br /&gt;       ServiceHost webServiceHost &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; ServiceHost(serviceType, webServiceAddress);&lt;br /&gt;&lt;br /&gt;       &lt;/span&gt;&lt;span style=&quot;color: #0000FF;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; webServiceHost;&lt;br /&gt;   }&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Ahora solo nos hace falta indicarle al servicio que debe usar esta clase como Factory&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:5925e02c-951b-409f-b59a-7222865e70e3&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;pre style=&quot;background-color:#FFFFCE;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;lt;%&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;@ ServiceHost Language&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;C#&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; Debug&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; Service&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;Services.MyService&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; Factory&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;Services.CustomHostFactory&lt;/span&gt;&lt;span style=&quot;color: #800000;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn&#39;s Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Con esto ya no tendremos este error y nuestro servicio trabajará correctamente.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Adicionalmente a esto pueden otras opciones de como solucionar este problema como en los siguientes enlaces:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://www.robzelt.com/blog/2007/01/24/WCF+This+Collection+Already+Contains+An+Address+With+Scheme+Http.aspx&quot; target=&quot;_blank&quot;&gt;WCF: This collection already contains an address with scheme http&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/rampo/archive/2008/02/11/how-can-wcf-support-multiple-iis-binding-specified-per-site.aspx&quot; target=&quot;_blank&quot;&gt;How can WCF support multiple IIS Binding specified per site ?&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Espero les pueda evitar unos cuantos dolores de cabeza.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/6662571459798548861/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/6662571459798548861?isPopup=true' title='6 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/6662571459798548861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/6662571459798548861'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2009/06/wcf-this-collection-already-contains.html' title='WCF: Esta colección ya contiene una dirección con el esquema http. Sólo puede haber una dirección por esquema en esta colección'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-3349685732515561143</id><published>2009-05-22T20:25:00.001-05:00</published><updated>2009-05-22T20:25:24.541-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET Framework 4.0"/><category scheme="http://www.blogger.com/atom/ns#" term="novedades"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2010"/><title type='text'>Liberado Visual Studio 2010 Beta 1</title><content type='html'>&lt;p&gt;Ya esta disponible para todos el Beta de Visual Studio 2010, ahora lo estoy descargando, si alguien quiere probarlo aquí tiene el enlace:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?familyid=3296BB4F-D8BA-4CFD-AA95-A424C5913F6B&amp;amp;displaylang=en&quot; target=&quot;_blank&quot;&gt;Download VS 2010 Professional Beta 1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Si están usando Windows 7 RC, puede que tengan problemas de compatibilidad con SQL Server 2008, para ver mas detalles en este &lt;a href=&quot;http://social.msdn.microsoft.com/Forums/en-US/vssetup/thread/6a569376-4207-4184-a8a7-73d5168c787e&quot; target=&quot;_blank&quot;&gt;enlace&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Si desean conocer mas de VS 2010 aquí les dejo la &lt;a href=&quot;http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx&quot; target=&quot;_blank&quot;&gt;Pagina oficial del Producto&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/3349685732515561143/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/3349685732515561143?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/3349685732515561143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/3349685732515561143'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2009/05/liberado-visual-studio-2010-beta-1.html' title='Liberado Visual Studio 2010 Beta 1'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15382737.post-1807988181988829305</id><published>2009-05-03T01:11:00.001-05:00</published><updated>2009-05-05T11:20:06.127-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="novedades"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7"/><title type='text'>Windows 7 RC Disponible</title><content type='html'>&lt;p&gt;Desde el día 30 que ya esta disponible para descarga el RC(Reléase Candidate) de Windows 7, para los suscriptores MSDN y TechNet y a partir del 5 de mayo para los demás, viene con algunas novedades como es el &lt;a href=&quot;http://www.microsoft.com/presspass/features/2009/Apr09/04-28Win7QA.mspx&quot; target=&quot;_blank&quot;&gt;XP Mode&lt;/a&gt; que permite ejecutar programas escritos para XP y que no funcionan en esta nueva Versión, en general tiene muchas cosas buenas que valen la pena probarlo, ya lo llevo usando algún tiempo y la verdad que estoy mas que satisfecho, los invito a probarlo.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/subscriptions&quot; target=&quot;_blank&quot;&gt;Download MSDN&lt;/a&gt; | &lt;a href=&quot;http://technet.microsoft.com/subscriptions&quot; target=&quot;_blank&quot;&gt;Download TechNet&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;UPDATE: &lt;a href=&quot;http://www.microsoft.com/windows/windows-7/download.aspx&quot; target=&quot;_blank&quot;&gt;Download sin suscripción&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-3017624447729199&quot;;
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = &quot;728x90_as&quot;;
google_ad_type = &quot;image&quot;;
google_ad_channel =&quot;&quot;;
//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;
&lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rilaros.blogspot.com/feeds/1807988181988829305/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/15382737/1807988181988829305?isPopup=true' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/1807988181988829305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15382737/posts/default/1807988181988829305'/><link rel='alternate' type='text/html' href='http://rilaros.blogspot.com/2009/05/windows-7-rc-disponible.html' title='Windows 7 RC Disponible'/><author><name>Ricardo La Rosa</name><uri>http://www.blogger.com/profile/01660376917862821033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>