tag:blogger.com,1999:blog-47998906539372282502024-03-12T17:24:16.004-07:00Developer chilec#, visual studio, la vida en generalPablo Hormazabalhttp://www.blogger.com/profile/03574118802551510918noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-4799890653937228250.post-60582513940601221582011-08-16T14:40:00.000-07:002011-08-22T11:56:23.260-07:00Encriptar Información Parte IIa (Usted no lo haga)<div style="text-align: center;"><span class="Apple-style-span"><u>
<br /></u></span></div>
<br /><p class="MsoNormal">Continuando con esta serie de post sobre la encriptación de datos o como me corrigió mi amigo Mario el termino correcto sería codificación <span> </span>de información, antes de entrar en tierra firme y explicar todos los tipos de encriptación voy a ahondar en las malas practicas utilizadas por muchos desarrolladores que piensan que están haciendo sus sitios seguros y protegiendo la información cuando en realidad solo están agregando líneas de código inservibles para el fin que se está solicitando, ¿Por qué les pasa esto?, muy simple, les pasa por que no entienden y no se dan el tiempo de tratar de entender lo que están haciendo, sin ir mas lejos he conocido <b>programadores </b>que logran entregar productos y que no saben explicar cosas tan básicas como lo que significa una clase, una interfaz, herencia, para ellos es hablar otro idioma cuando se les consulta por el patrón singleton o clases abstractas.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Al momento de encriptar información una de las malas prácticas más comunes es la codificación XOR, sin ir más lejos una empresa que empieza con servi…. la ocupaba hace poco en sus url, ésta codificación ocupa la lógica matemática del “o exclusivo” la cual dice que es un tipo de disyunción lógica de dos operandos que es verdad si solo un operando es verdad pero no ambos. En programación el manejo se hace tomando el universo no incluido en los binarios a comparar.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Si en c# realizáramos un XOR entre los enteros 10 y 12, este nos devolvería un 6 y la logica que ocurriría sería la siguiente</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; color:blue;mso-no-proof:yes">int</span><span style="font-size:10.0pt; font-family:"Courier New";mso-no-proof:yes"> A = 10 ^ 12;<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes">donde <o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes">10 = 1010<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes">12 = 1110<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes">A <span> </span>= 110<o:p></o:p></span></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Es fácil reconocer que lo que se realizó fue una suma de números binarios, explicado esto vamos a un ejemplo de este tipo de codificación.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">Como codificar:</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New";color:blue; mso-ansi-language:EN-US;mso-no-proof:yes">public</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language:EN-US; mso-no-proof:yes"> <span style="color:blue">static</span> <span style="color:blue">byte</span>[] Codificar(<span style="color:blue">byte</span>[] cadena)<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US;mso-no-proof:yes"><span> </span>{<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US;mso-no-proof:yes"><span> </span><span style="color:blue">for</span> (<span style="color:blue">int</span> _i = 0; _i < cadena.Length; _i++)<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes"><span> </span>cadena [_i] = (<span style="color:blue">byte</span>)(<span style="color:#993300">15</span> ^ bytACodificar[_i]);<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes"><span> </span><span style="color:blue">return</span> cadena;<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes"><span> </span>}<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes"><o:p> </o:p></span></p> <p class="MsoNormal">Si se fijan a cada elemento del vector de byte le realizó un XOR con un número fijo (en este caso es 15) <span> </span>el cual ocuparé para decodificar la cadena como se ve en la siguiente función: </p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New";color:blue; mso-ansi-language:EN-US;mso-no-proof:yes">public</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language:EN-US; mso-no-proof:yes"> <span style="color:blue">static</span> <span style="color:blue">byte</span>[] DeCodificar(<span style="color:blue">byte</span>[] cadena)<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US;mso-no-proof:yes"><span> </span>{<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US;mso-no-proof:yes"><span> </span><span style="color:blue">for</span> (<span style="color:blue">int</span> _i = 0; _i < cadena.Length; _i++)<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes"><span> </span>cadena[_i] = (<span style="color:blue">byte</span>)(15 ^ cadena[_i]);<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes"><span> </span><span style="color:blue">return</span> cadena;<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes"><span> </span>}<o:p></o:p></span></p> <p class="MsoNormal">No hay diferencia en las funciones solo se aplica una simple conmutatividad, ¿cuanto se demora un atacante en descifrar esto?, <span> </span>menos de lo que te has demorado en leer el artículo, si aplicáramos esto en un código <span> </span>lo haríamos de la siguiente forma:</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New"; color:#2B91AF;mso-ansi-language:EN-US;mso-no-proof:yes">String</span><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US;mso-no-proof:yes"> text = <span style="color:#A31515">"Pablo Hormazabal rlz."</span>;<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US;mso-no-proof:yes">System.Text.<span style="color:#2B91AF">ASCIIEncoding</span> codificador = <span style="color:blue">new</span> System.Text.<span style="color:#2B91AF">ASCIIEncoding</span>();<span> </span><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US;mso-no-proof:yes"><span> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes">byte</span><span style="font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes">[] texto = Codificar(codificador.GetBytes(text));<span> </span><o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes"><span> </span>System.<span style="color:#2B91AF">Console</span>.WriteLine(codificador.GetString(texto));<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes"><span> </span>texto = DeCodificar(texto);<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes"><span> </span>System.<span style="color:#2B91AF">Console</span>.WriteLine(codificador.GetString(texto));<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes"><span> </span>System.<span style="color:#2B91AF">Console</span>.ReadKey();<o:p></o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes">El resultado es el siguiente:<o:p></o:p></span></p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes"><span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; "><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIMM11rqheI3ZGiBX-wyOcan0FAQYo9pNG_LWyabuFYqOg1FJRczC8hTqWz_x6yvyDznx0tZmD91CgovwEg7EyHoDyGYaWGvEej_SqsBqlxsyORcUqhLzl79ibZiuMeaw8T3sdE7m064M/s1600/result.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIMM11rqheI3ZGiBX-wyOcan0FAQYo9pNG_LWyabuFYqOg1FJRczC8hTqWz_x6yvyDznx0tZmD91CgovwEg7EyHoDyGYaWGvEej_SqsBqlxsyORcUqhLzl79ibZiuMeaw8T3sdE7m064M/s320/result.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5641572089810584370" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 210px; " /></a></span></span></p><div><span style="font-size:10.0pt;font-family:"Courier New"; mso-no-proof:yes">
<br /></span></div>Pablo Hormazabalhttp://www.blogger.com/profile/03574118802551510918noreply@blogger.com0tag:blogger.com,1999:blog-4799890653937228250.post-54505423051305001762011-08-09T08:10:00.000-07:002011-08-09T08:14:37.966-07:00Como llamar un package que tiene un cursor de entrada y salida desde spring con jdk142_11 (la vieja escuela)<!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> <p class="MsoNormal" style=""><span style="font-size:10.0pt;font-family:Arial;mso-bidi-font-weight:bold">Lo primero que debemos crear es una clase que herede las propiedades de la clase StoredProcedure, <span style="mso-spacerun:yes"> </span>dentro de ella definimos la llamada al package de la manera que más les acomode, en el ejemplo les dejo una forma que recomiendo (recordando que no soy dueño de la verdad y si algún<span style="mso-spacerun:yes"> </span>lector considera que existe algo mejor le agradecería comentarlo</span><span style="font-size:10.0pt;font-family:Wingdings; mso-ascii-font-family:Arial;mso-hansi-font-family:Arial;mso-bidi-font-family: Arial;mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-bidi-font-weight: bold"><span style="mso-char-type:symbol;mso-symbol-font-family:Wingdings"></span></span><span style="font-size: 10pt; font-family: Arial;">).</span></p><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">public class GetNotiPortal extends StoredProcedure</span></b></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">{</span></b></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">private</span></b><span style="font-size: 10.0pt;font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> </span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">static</span></b><span style="font-size: 10.0pt;font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> </span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">final</span></b><span style="font-size: 10.0pt;font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> String SPROC_NAME = </span><span style="font-size:10.0pt;font-family:"Courier New"; color:#2A00FF;mso-ansi-language:EN-US" lang="EN-US">"Ruta con el Package"</span><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US">;</span><span style="font-size:10.0pt; font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">public</span></b><span style="font-size: 10.0pt;font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> GetNotiPortal(DataSource ds)</span><span style="font-size:10.0pt; font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US">{</span><span style="font-size:10.0pt; font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="text-indent:35.4pt;mso-layout-grid-align:none; text-autospace:none"><b><span style="font-size:10.0pt;font-family: "Courier New";color:#7F0055;mso-ansi-language:EN-US" lang="EN-US">super</span></b><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US">(ds,SPROC_NAME);</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-spacerun:yes"> </span>declareParameter(</span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">new</span></b><span style="font-size:10.0pt; font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> SqlParameter(</span><span style="font-size:10.0pt;font-family:"Courier New";color:#2A00FF; mso-ansi-language:EN-US" lang="EN-US">"Parametro1"</span><span style="font-size:10.0pt;font-family:"Courier New";color:black;mso-ansi-language: EN-US" lang="EN-US">, OracleTypes.VARCHAR));<span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-spacerun:yes"> </span>declareParameter(</span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">new</span></b><span style="font-size:10.0pt; font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> SqlParameter(</span><span style="font-size:10.0pt;font-family:"Courier New";color:#2A00FF; mso-ansi-language:EN-US" lang="EN-US">"Parametro2"</span><span style="font-size:10.0pt;font-family:"Courier New";color:black;mso-ansi-language: EN-US" lang="EN-US">,OracleTypes.VARCHAR));<span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-spacerun:yes"> </span>declareParameter(</span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">new</span></b><span style="font-size:10.0pt; font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> SqlOutParameter(</span><span style="font-size:10.0pt;font-family: "Courier New";color:#2A00FF;mso-ansi-language:EN-US" lang="EN-US">"OUT_CURSORPORTAL "</span><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US">, OracleTypes.CURSOR,</span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055;mso-ansi-language: EN-US" lang="EN-US">new</span></b><span style="font-size:10.0pt;font-family:"Courier New"; color:black;mso-ansi-language:EN-US" lang="EN-US"> ClaseRowMapper()));<span style="mso-spacerun:yes"> </span><span style="mso-tab-count:1"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:black">compile();<span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt; font-family:"Courier New""></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; color:black"><span style="mso-tab-count:1"> </span>}</span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; color:black">}</span></p> <!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; color:black">Dentro del método GetNotiPortal se hace una llamada al constructor de la clase de la que se hereda (extends), pasándole dos parámetros (Datasource y un String), luego de esto debemos declarar los parámetros de entrada en este caso son dos más la declaración del Cursor definiéndolo con su respectiva clase RowMapper ya que debemos recordar que no es solo un parámetro de entrada si no que cumple doble función.</span><span style="font-size:10.0pt;font-family:Arial"></span></p> <p class="MsoNormal"><span style="font-size: 10pt; font-family: "Courier New"; color: black;">La siguiente función nos permite ejecutar el package y leer el cursor que contiene la información de salida.</span></p><p class="MsoNormal"><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> </p><p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055">public</span></b><span style="font-size:10.0pt;font-family:"Courier New";color:black"> Resultado[] recuperaDatos(String valor1, String valor2) </span><span style="font-size:10.0pt;font-family:"Courier New""></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-tab-count:1"> </span></span><span style="font-size: 10.0pt;font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US">{</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt; font-family:"Courier New";color:black">Resultado</span><span style="font-size:10.0pt;font-family:"Courier New";color:black;mso-ansi-language: EN-US" lang="EN-US">[] </span><span style="font-size:10.0pt;font-family:"Courier New"; color:black">resultado</span><span style="font-size:10.0pt;font-family:"Courier New"; color:black;mso-ansi-language:EN-US"> <span lang="EN-US">= </span></span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">null</span></b><span style="font-size:10.0pt; font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US">;<span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span>GetNotiPortal getNotiPortal = </span><b><span style="font-size:10.0pt;font-family: "Courier New";color:#7F0055;mso-ansi-language:EN-US" lang="EN-US">new</span></b><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"> GetNotiPortal(</span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055;mso-ansi-language: EN-US" lang="EN-US">this</span></b><span style="font-size:10.0pt;font-family: "Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US">.getDataSource());<span style="mso-tab-count:2"> </span> </span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span>Map inParams = </span><b><span style="font-size:10.0pt;font-family:"Courier New"; color:#7F0055;mso-ansi-language:EN-US" lang="EN-US">new</span></b><span style="font-size:10.0pt;font-family:"Courier New";color:black;mso-ansi-language: EN-US" lang="EN-US"> HashMap();</span><span style="font-size:10.0pt;font-family: "Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:black">inParams.put(</span><span style="font-size:10.0pt;font-family:"Courier New";color:#2A00FF">"Parametro1"</span><span style="font-size:10.0pt;font-family:"Courier New";color:black">, valor1);</span><span style="font-size:10.0pt;font-family:"Courier New""></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-tab-count:2"> </span>inParams.put(</span><span style="font-size:10.0pt;font-family:"Courier New";color:#2A00FF">"Parametro2"</span><span style="font-size:10.0pt;font-family:"Courier New";color:black">, valor2);</span><span style="font-size:10.0pt;font-family:"Courier New""></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:black;mso-ansi-language: EN-US" lang="EN-US">Map results = getNotiPortal.execute(inParams);</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span></span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">if</span></b><span style="font-size:10.0pt; font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> (results.get(</span><span style="font-size:10.0pt;font-family:"Courier New";color:#2A00FF; mso-ansi-language:EN-US" lang="EN-US">"OUT_CURSORPORTAL"</span><span style="font-size:10.0pt;font-family:"Courier New";color:black;mso-ansi-language: EN-US" lang="EN-US">)==</span><b><span style="font-size:10.0pt;font-family:"Courier New"; color:#7F0055;mso-ansi-language:EN-US" lang="EN-US">null</span></b><span style="font-size:10.0pt;font-family:"Courier New";color:black;mso-ansi-language: EN-US" lang="EN-US">)<span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>{<span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055;mso-ansi-language: EN-US" lang="EN-US">return</span></b><span style="font-size:10.0pt;font-family: "Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> </span><span style="font-size:10.0pt;font-family:"Courier New";color:black">resultado</span><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US">; </span><span style="font-size:10.0pt; font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>}<span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055;mso-ansi-language: EN-US" lang="EN-US">else</span></b><span style="font-size:10.0pt;font-family: "Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"><span style="mso-spacerun:yes"> </span></span><span style="font-size: 10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>{</span><span style="font-size: 10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span><span style="mso-tab-count:1"> </span>Set s=results.entrySet();</span><span style="font-size:10.0pt; font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>Iterator it=s.iterator();<span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055;mso-ansi-language: EN-US" lang="EN-US">while</span></b><span style="font-size:10.0pt;font-family: "Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US">(it.hasNext())</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>{<span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>Map.Entry m =(Map.Entry)it.next();</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>Object o = m.getValue();</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>List l = (List)o;</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt; font-family:"Courier New";color:black">resultado</span><span style="font-size: 10.0pt;font-family:"Courier New";color:black;mso-ansi-language:EN-US"> <span lang="EN-US">= </span></span><b><span style="font-size:10.0pt; font-family:"Courier New";color:#7F0055;mso-ansi-language:EN-US" lang="EN-US">new</span></b><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"> NotificaVo[l.size()];</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055;mso-ansi-language: EN-US" lang="EN-US">for</span></b><span style="font-size:10.0pt;font-family:"Courier New"; color:black;mso-ansi-language:EN-US" lang="EN-US"> (</span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055;mso-ansi-language: EN-US" lang="EN-US">int</span></b><span style="font-size:10.0pt;font-family:"Courier New"; color:black;mso-ansi-language:EN-US" lang="EN-US"> i=0; i < l.size(); i++)</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt; font-family:"Courier New";color:black">{</span><span style="font-size:10.0pt; font-family:"Courier New""></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>resultado[i]= (NotificaVo)l.get(0);</span><span style="font-size:10.0pt;font-family:"Courier New""></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span><span style="mso-spacerun:yes"> </span>}</span><span style="font-size:10.0pt;font-family:"Courier New""></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>}<span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span><span style="mso-tab-count:2"> </span><span style="mso-spacerun:yes"> </span><span style="mso-tab-count:1"> </span></span><span style="font-size:10.0pt;font-family:"Courier New""></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><b><span style="font-size:10.0pt;font-family:"Courier New"; color:#7F0055">return</span></b><span style="font-size:10.0pt;font-family:"Courier New"; color:black"> notificaVo;</span><span style="font-size:10.0pt;font-family:"Courier New""></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>} </span><span style="font-size:10.0pt;font-family:"Courier New""></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; color:black"><span style="mso-tab-count:1"> </span>}</span></p> <!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> <p class="MsoNormal"><b style="mso-bidi-font-weight:normal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">Definición de datasource y Rowmapper en el applicationContext.xml</span></b></p> <p class="MsoNormal"><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> </p><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; color:black">Los datasource y las clases Rowmapper en spring deben definirse dentro del archivo applicationContext.xml de la siguiente manera.</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;background:silver;mso-highlight:silver; mso-ansi-language:EN-US" lang="EN-US">bean</span><span style="font-size:10.0pt; font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"> <span style="color:#7F007F">id</span><span style="color:black">=</span><i><span style="color:#2A00FF">"Datasource"</span></i></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span><span style="color: #7F007F">class</span><span style="color:black">=</span><i><span style="color:#2A00FF">"org.springframework.jndi.JndiObjectFactoryBean"</span></i><span style="color:teal">></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">property</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"> <span style="color:#7F007F">name</span><span style="color:black">=</span><i><span style="color:#2A00FF">"jndiName"</span></i> <span style="color:#7F007F">value</span><span style="color:black">=</span><i><span style="color:#2A00FF">"ds/Datasource"</span></i> <span style="color:teal">/></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><!--</span--><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;background:silver;mso-highlight:silver; mso-ansi-language:EN-US" lang="EN-US">bean</span><span style="font-size:10.0pt; font-family:"Courier New";color:teal;mso-ansi-language:EN-US" lang="EN-US">></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">bean</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"> <span style="color:#7F007F">id</span><span style="color:black">=</span><i><span style="color:#2A00FF">"txManagerDatasource"</span></i></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-tab-count: 1"> </span><span style="color:#7F007F">class</span><span style="color: black">=</span><i><span style="color:#2A00FF">"org.springframework.jdbc.datasource.DataSourceTransactionManager"</span></i><span style="color:teal">></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">property</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"> <span style="color:#7F007F">name</span><span style="color:black">=</span><i><span style="color:#2A00FF">"dataSource"</span></i> <span style="color: #7F007F">ref</span><span style="color:black">=</span><i><span style="color: #2A00FF">"Datasource"</span></i> <span style="color:teal">/></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><!--</span--><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">bean</span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US">></span><span style="font-size:10.0pt; font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">bean</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"> <span style="color:#7F007F">id</span><span style="color:black">=</span><i><span style="color:#2A00FF">"serviceDatasource"</span></i></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-tab-count: 1"> </span><span style="color:#7F007F">class</span><span style="color: black">=</span><i><span style="color:#2A00FF">"org.springframework.transaction.interceptor.TransactionProxyFactoryBean"</span></i><span style="color:teal">></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">property</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"> <span style="color:#7F007F">name</span><span style="color:black">=</span><i><span style="color:#2A00FF">"transactionManager"</span></i> <span style="color:#7F007F">ref</span><span style="color:black">=</span><i><span style="color:#2A00FF">"txManagerProdSaludNew"</span></i> <span style="color:teal">/></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">property</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"> <span style="color:#7F007F">name</span><span style="color:black">=</span><i><span style="color:#2A00FF">"target"</span></i> <span style="color:#7F007F">ref</span><span style="color:black">=</span><i><span style="color:#2A00FF">"gestionadorSolicitud"</span></i> <span style="color:teal">/></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">property</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"> <span style="color:#7F007F">name</span><span style="color:black">=</span><i><span style="color:#2A00FF">"transactionAttributes"</span></i><span style="color:teal">></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:3"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">props</span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US">></span><span style="font-size:10.0pt; font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:4"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">prop</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"> <span style="color:#7F007F">key</span><span style="color:black">=</span><i><span style="color:#2A00FF">"recuperar*"</span></i><span style="color:teal">></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:5"> </span>PROPAGATION_SUPPORTS,readOnly</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:4"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><!--</span--><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">prop</span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US">></span><span style="font-size:10.0pt; font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:4"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">prop</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"> <span style="color:#7F007F">key</span><span style="color:black">=</span><i><span style="color:#2A00FF">"*"</span></i><span style="color:teal">></span><span style="color:black">PROPAGATION_REQUIRED</span><span style="color:teal"><!--</span--><span style="color:#3F7F7F">prop</span><span style="color:teal">></span></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:3"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><!--</span--><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">props</span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US">></span><span style="font-size:10.0pt; font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><!--</span--><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">property</span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US">></span><span style="font-size:10.0pt; font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><!--</span--><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">bean</span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US">></span><span style="font-size:10.0pt; font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span></span><span style="font-size: 10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">bean</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"> <span style="color:#7F007F">id</span><span style="color:black">=</span><i><span style="color:#2A00FF">"claseRowMapper"</span></i></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span><span style="color: #7F007F">class</span><span style="color:black">=</span><i><span style="color:#2A00FF">"package.dao.utils.claseRowMapper"</span></i><span style="color:teal">></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><!--</span--><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">bean</span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US">></span><span style="font-size:10.0pt; font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal"><</span><span style="font-size:10.0pt;font-family:"Courier New";color:#3F7F7F">bean</span><span style="font-size:10.0pt;font-family:"Courier New""> <span style="color:#7F007F">id</span><span style="color:black">=</span><i><span style="color:#2A00FF">"Nombredelaclase"</span></i></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New""><span style="mso-tab-count: 2"> </span><span style="color:#7F007F">class</span><span style="color:black">=</span><i><span style="color:#2A00FF">"package.dao.Nombredelaclase "</span></i><span style="color:teal">></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal;mso-ansi-language: EN-US" lang="EN-US"><</span><span style="font-size:10.0pt;font-family:"Courier New"; color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">property</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"> <span style="color:#7F007F">name</span><span style="color:black">=</span><i><span style="color:#2A00FF">"dataSource"</span></i><span style="color:teal">></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:3"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">ref</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"> <span style="color:#7F007F">bean</span><span style="color:black">=</span><i><span style="color:#2A00FF">"Datasource"</span></i> <span style="color: teal">/></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><!--</span--><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">property</span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US">></span><span style="font-size:10.0pt; font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">property</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"> <span style="color:#7F007F">name</span><span style="color:black">=</span><i><span style="color:#2A00FF">"claseRowMapper"</span></i><span style="color:teal">></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:3"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal; mso-ansi-language:EN-US" lang="EN-US"><</span><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F;mso-ansi-language:EN-US" lang="EN-US">ref</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"> <span style="color:#7F007F">bean</span><span style="color:black">=</span><i><span style="color:#2A00FF">"claseRowMapper"</span></i> <span style="color:teal">/></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";color:teal"><!--</span--><span style="font-size:10.0pt;font-family:"Courier New";color:#3F7F7F">property</span><span style="font-size:10.0pt;font-family:"Courier New";color:teal">></span><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-tab-count:3"> </span></span><span style="font-size:10.0pt; font-family:"Courier New""></span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black"><span style="mso-tab-count:1"> </span></span><span style="font-size:10.0pt; font-family:"Courier New";color:teal"><!--</span--><span style="font-size:10.0pt; font-family:"Courier New";color:#3F7F7F">bean</span><span style="font-size: 10.0pt;font-family:"Courier New";color:teal">></span><span style="font-size: 10.0pt;font-family:"Courier New""></span></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; color:black"><span style="mso-tab-count:1"> </span></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; color:black">* El datasource debe estar creado y definido con los mismos parámetros en el servidor. </span></p> <p class="MsoNormal"><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> </p><p style="font-weight: bold;" class="MsoNormal">Ejemplo de Clase Rowmapper</p><p class="MsoNormal"><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> </p><p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">public</span></b><span style="font-size: 10.0pt;font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> </span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">class</span></b><span style="font-size: 10.0pt;font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> <u>ClaseRowMapper</u> </span><b><span style="font-size:10.0pt;font-family:"Courier New"; color:#7F0055;mso-ansi-language:EN-US" lang="EN-US">implements</span></b><span style="font-size:10.0pt;font-family:"Courier New";color:black;mso-ansi-language: EN-US" lang="EN-US"> RowMapper{</span><span style="font-size:10.0pt;font-family: "Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">public</span></b><span style="font-size: 10.0pt;font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> <u>Object</u> mapRow(<u>ResultSet</u> rs, </span><b><span style="font-size:10.0pt; font-family:"Courier New";color:#7F0055;mso-ansi-language:EN-US" lang="EN-US">int</span></b><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"> rowNum) </span><b><span style="font-size: 10.0pt;font-family:"Courier New";color:#7F0055;mso-ansi-language:EN-US" lang="EN-US">throws</span></b><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"> <u>SQLException</u>{<span style="mso-tab-count:1"> </span><span style="mso-tab-count:1"> </span></span><span style="font-size: 10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>ClaseVo claseVo = </span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">null</span></b><span style="font-size:10.0pt; font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US">;<span style="mso-tab-count:2"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><b><span style="font-size: 10.0pt;font-family:"Courier New";color:#7F0055;mso-ansi-language:EN-US" lang="EN-US">int</span></b><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"> id = 0;</span><span style="font-size:10.0pt; font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055;mso-ansi-language: EN-US" lang="EN-US">if</span></b><span style="font-size:10.0pt;font-family:"Courier New"; color:black;mso-ansi-language:EN-US" lang="EN-US">((id = rs.getInt(2)) != 0)</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>{<span style="mso-spacerun:yes"> </span><span style="mso-tab-count:1"> </span></span><span style="font-size: 10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span><span style="mso-tab-count:1"> </span>claseVo = </span><b><span style="font-size:10.0pt;font-family:"Courier New"; color:#7F0055;mso-ansi-language:EN-US" lang="EN-US">new</span></b><span style="font-size:10.0pt;font-family:"Courier New";color:black;mso-ansi-language: EN-US" lang="EN-US"> NotificaVo();<span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span><span style="mso-tab-count:1"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span><span style="mso-tab-count:1"> </span>claseVo.setnum(</span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055; mso-ansi-language:EN-US" lang="EN-US">new</span></b><span style="font-size:10.0pt; font-family:"Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> <u>Integer</u>(id));</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span><span style="mso-tab-count:1"> </span>claseVo.setstring(rs.getString(1));</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span><span style="mso-tab-count:1"> </span>claseVo.setstring(rs.getString(2));</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span><span style="mso-tab-count:1"> </span></span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>}<span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><span style="font-size: 10.0pt;font-family:"Courier New";mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><b><span style="font-size:10.0pt;font-family:"Courier New";color:#7F0055;mso-ansi-language: EN-US" lang="EN-US">return</span></b><span style="font-size:10.0pt;font-family: "Courier New";color:black;mso-ansi-language:EN-US" lang="EN-US"> claseVo;</span><span style="font-size:10.0pt;font-family:"Courier New";mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:10.0pt;font-family:"Courier New";color:black; mso-ansi-language:EN-US" lang="EN-US"><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span></span><span style="font-size:10.0pt; font-family:"Courier New";color:black">}</span><span style="font-size:10.0pt; font-family:"Courier New""></span></p> <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"; color:black">}</span></p> <p class="MsoNormal"></p>Pablo Hormazabalhttp://www.blogger.com/profile/03574118802551510918noreply@blogger.com0tag:blogger.com,1999:blog-4799890653937228250.post-34999686533935948772011-08-05T08:30:00.000-07:002011-08-05T12:24:06.804-07:00Escritorio remoto desde c#<span style="font-family:arial;">Hoy aprendí algo muy entretenido, el como hacer mi propio escritorio remoto con c#, suena complejo pero es realmente fácil. Lo primero que se debe hacer es agregar en el toolbox un COM </span><span style="font-family:arial;"> </span><span style="font-family:arial;">llamado Microsoft RDP Client Control.</span><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikuPGeG-6Ppg4bE6C-sfl7gnw_VppXvlKQBoUVOlITLIg0fLhIQzPfAT-7LYavI0N7omAQf9N9Q0qrQknBcdgaG5lSFq0Du1opfXl9R0NTbE8xw8cFs333snEjz7otrhDawpgdxgXK9Jk/s1600/1.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 249px; height: 92px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikuPGeG-6Ppg4bE6C-sfl7gnw_VppXvlKQBoUVOlITLIg0fLhIQzPfAT-7LYavI0N7omAQf9N9Q0qrQknBcdgaG5lSFq0Du1opfXl9R0NTbE8xw8cFs333snEjz7otrhDawpgdxgXK9Jk/s320/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5637397305819995906" border="0" /></a><br /><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> <p face="arial" class="MsoNormal">Lo agregamos en nuestro formulario:</p><p class="MsoNormal"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9YJS2EfylvzlzPizSSNcIKPRQgCegR2kwd0kpjSYSkmNJzqFSgTR_MSlC5yl92eq17jFowUqvmoMRVfIkX60LURjqQc_vjZxrlH-iWuexH3QP9cbYTENZ0808HAFX7Pf6UHGhpbV6EGk/s1600/2.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 308px; height: 264px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9YJS2EfylvzlzPizSSNcIKPRQgCegR2kwd0kpjSYSkmNJzqFSgTR_MSlC5yl92eq17jFowUqvmoMRVfIkX60LURjqQc_vjZxrlH-iWuexH3QP9cbYTENZ0808HAFX7Pf6UHGhpbV6EGk/s320/2.JPG" alt="" id="BLOGGER_PHOTO_ID_5637397551943556130" border="0" /></a></p><p class="MsoNormal"><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> </p><p style="font-family: arial;" class="MsoNormal">Le damos el nombre que queremos en este caso de ejemplo le ponemos eRemoto y agregamos el siguiente código, en este caso está en el contructor de la clase Formulario y está todo en duro solo por que es un ejemplo, si quieren implementarlo deben hacerlo de una manera mas limpia y parametrizable</p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-no-proof:yesfont-family:";font-size:10.0pt;color:blue;" > </span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New"; mso-ansi-language:EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;color:blue;" lang="EN-US" >public</span><span style="Courier New";mso-ansi-language:EN-US; mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" > FrmRControl()</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>{</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>InitializeComponent();</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>eRemoto.Name = <span style="color:#A31515;">"Conexión 1"</span>;</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>eRemoto.Server = <span style="color:#A31515;">"ip"</span>;</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>eRemoto.UserName = <span style="color:#A31515;">"nombreusuario"</span>;</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>eRemoto.Domain = <span style="color:#A31515;">"Dominio"</span>;</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>eRemoto.AdvancedSettings2.ClearTextPassword = <span style="color:#A31515;">"clave"</span>;</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>eRemoto.AdvancedSettings2.ConnectToServerConsole = <span style="color:blue;">true</span>;</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>eRemoto.AdvancedSettings2.RDPPort = 3389;</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>eRemoto.AdvancedSettings2.RedirectDrives = <span style="color:blue;">true</span>;</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>eRemoto.AdvancedSettings2.RedirectPrinters = <span style="color:blue;">true</span>;</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-tab-count:1"> </span><span style="mso-spacerun:yes"> </span>eRemoto.AdvancedSettings2.RedirectPorts = <span style="color:blue;">true</span>;<span style="mso-spacerun:yes"> </span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>eRemoto.Connect();<span style="mso-spacerun:yes"> </span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" > </span></p> <p class="MsoNormal"><span style="Courier New"; mso-ansi-language:EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span></span><span style=" Courier New";mso-no-proof:yesfont-family:";font-size:10.0pt;" >}</span></p> <p style="font-family: arial;" class="MsoNormal"><span style="font-size:10pt;">Si los parametros están ok al compilar inmediatamente se conectará de forma remota.<br /></span></p> <br /><br /><p class="MsoNormal"><br /></p>Pablo Hormazabalhttp://www.blogger.com/profile/03574118802551510918noreply@blogger.com2tag:blogger.com,1999:blog-4799890653937228250.post-218275646856332372011-08-01T08:30:00.000-07:002011-08-01T10:28:01.862-07:00Encriptar Información Parte I (Base de datos)<!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> <p class="MsoNormal">Muchas veces por motivos de seguridad se nos hace necesario encriptar información. La gran pregunta es donde es más recomendable hacerlo (Aplicación, datos) y mi respuesta es clara “<b style="mso-bidi-font-weight:normal">todo depende del proyecto</b>” <span style="font-style: italic;">(de claro nada jajaja) </span>en post de ayudar les voy a dejar un tips para Oracle y otro en la segunda parte de este post en C#.</p> <p class="MsoNormal">Encriptación de datos en la base de datos</p> <p class="MsoNormal">Las ventajas de encriptar cadenas y campos dentro de la base de datos son las siguientes:</p> <p class="MsoNormal">1.- Aumento del Nivel de seguridad externo de una solución, ya que hace necesario <b style="mso-bidi-font-weight:normal">en la mayoría de los casos</b> que el atacante deba tener un acceso considerable al servidor de base de datos para robar información.</p> <p class="MsoNormal">2.- Aumento del Nivel de seguridad interno de una solución, esto se explica mucho mejor con un ejemplo: supongamos que tenemos una tabla Usuario en donde se almacena el rut y el password, si no tenemos encriptada <span style="mso-spacerun:yes"> </span>la información ésta será accesible por todos los funcionarios (dba, desarrolladores) que tengan acceso al esquema.</p> <p class="MsoNormal">Las desventajas:</p> <p class="MsoNormal">1.- A más datos encriptados más lento y complejo será nuestro trabajo y el acceso a los datos, hay que encriptar sólo lo necesario.</p> <p class="MsoNormal">2.- Si un proyecto no ésta bien diseñado en cuanto a niveles de seguridad, la encriptación solo será un maquillaje sin consistencia.</p> <p class="MsoNormal"> </p> <p class="MsoNormal">A continuación les dejo una función que encripta los datos y a su vez transforma la cadena encriptada a un Hexadecimal, esto último es solo si quieren ocupar esta cadena desde una aplicación Web.</p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">CREATE</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"> </span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">OR</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"> </span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">REPLACE</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"> </span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">FUNCTION</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"> CINTEGRALC</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">.</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:olive;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">encript</span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">(</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">url </span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:red;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">varchar2</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">)</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">RETURN</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"> </span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:red;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">varchar2</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"> </span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">IS</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">hexvalue </span><span style="font-size:8.0pt;font-family: Courier;mso-bidi-font-family:Courier;color:red;background:white;mso-highlight: white;mso-ansi-language:EN-US" lang="EN-US">varchar2</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">(</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">5000</span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">);</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">enc_key </span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:red;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">RAW</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:blue;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">(</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:black;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">8</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">)</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"><span style="mso-spacerun:yes"> </span></span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">:=</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"> UTL_RAW</span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">.</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">cast_to_raw</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">(</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:red;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">'EDC34rfv'</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">);</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">l_enc_val </span><span style="font-size:8.0pt;font-family: Courier;mso-bidi-font-family:Courier;color:red;background:white;mso-highlight: white;mso-ansi-language:EN-US" lang="EN-US">varchar2</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:black;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"> </span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">(</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">2000</span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">);</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">l_enc_val_raw </span><span style="font-size:8.0pt;font-family: Courier;mso-bidi-font-family:Courier;color:red;background:white;mso-highlight: white;mso-ansi-language:EN-US" lang="EN-US">raw</span><span style="font-size: 8.0pt;font-family:Courier;mso-bidi-font-family:Courier;color:blue;background: white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">(</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:black;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">2000</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">);</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">l_mod </span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:red;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">number</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"> </span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">:=</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"> <b><i>DBMS_CRYPTO.ENCRYPT_DES</i></b></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">+</span><b><i><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">DBMS_CRYPTO.CHAIN_ECB</span></i></b><span style="font-size: 8.0pt;font-family:Courier;mso-bidi-font-family:Courier;color:black;background: white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">+</span><b><i><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">DBMS_CRYPTO.PAD_PKCS5</span></i></b><span style="font-size: 8.0pt;font-family:Courier;mso-bidi-font-family:Courier;color:blue;background: white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">;</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:black;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"> </span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">BEGIN</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"><span style="mso-spacerun:yes"> </span>l_enc_val_raw </span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">:=</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"> <b><i>dbms_crypto.encrypt</i></b></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">(</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">UTL_I18N</span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">.</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">STRING_TO_RAW</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">(</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">url</span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">,</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:red;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">'WE8ISO8859P1'</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">),</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">l_mod</span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">,</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">enc_key</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">);</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">l_enc_val</span><span style="font-size:8.0pt;font-family: Courier;mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight: white;mso-ansi-language:EN-US" lang="EN-US">:=</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"> UTL_I18N</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">.</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">RAW_TO_CHAR</span><span style="font-size:8.0pt;font-family: Courier;mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight: white;mso-ansi-language:EN-US" lang="EN-US">(</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">l_enc_val_raw</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">,</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:red;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">'WE8ISO8859P1'</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">);</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"> </span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"><span style="mso-spacerun:yes"> </span></span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">for</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"> i </span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">in</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"> 1</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">..length(</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">l_enc_val</span><span style="font-size:8.0pt;font-family: Courier;mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight: white;mso-ansi-language:EN-US" lang="EN-US">)</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"> </span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">loop</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"><span style="mso-spacerun:yes"> </span>hexvalue </span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">:=</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"> hexvalue||</span><span style="font-size:8.0pt;font-family: Courier;mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight: white;mso-ansi-language:EN-US" lang="EN-US">hextoraw(to_char(ascii(substr(</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US">l_enc_val</span><span style="font-size:8.0pt;font-family: Courier;mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight: white;mso-ansi-language:EN-US" lang="EN-US">,</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"> i</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">,</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"> 1</span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">)),</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"> </span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:red;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">'FMXX'</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">));</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"><span style="mso-spacerun:yes"> </span></span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">end</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"> </span><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">loop;</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"><span style="mso-spacerun:yes"> </span></span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">RETURN</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"><span style="mso-spacerun:yes"> </span>hexvalue</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">;</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:black;background:white;mso-highlight:white;mso-ansi-language: EN-US" lang="EN-US"> </span></p> <p class="MsoNormal"><span style="font-size:8.0pt;font-family:Courier; mso-bidi-font-family:Courier;color:blue;background:white;mso-highlight:white; mso-ansi-language:EN-US" lang="EN-US">END</span><span style="font-size:8.0pt; font-family:Courier;mso-bidi-font-family:Courier;color:black;background:white; mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US"> </span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family:Courier; color:olive;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">encript</span><span style="font-size:8.0pt;font-family:Courier;mso-bidi-font-family: Courier;color:blue;background:white;mso-highlight:white;mso-ansi-language:EN-US" lang="EN-US">;</span></p> <p class="MsoNormal"> </p> <p class="MsoNormal">Dentro de ésta función la que realmente hace la magia es DBMC_CRYPTO.ENCRYPT en este caso me pide tres parámetros:</p> <p class="MsoNormal"> </p> <p class="MsoNormal">1.- UTL_I18N.STRING_TO_RAW(url,'WE8ISO8859P1'), -> <span style="mso-ansi-language:ES-CL" lang="ES-CL">cadena a encriptar mas el tipo de globalización de Oracle.</span></p> <p class="MsoNormal"><span style="mso-ansi-language:ES-CL" lang="ES-CL">2.-</span><span lang="ES-CL"> </span><span style="mso-ansi-language:ES-CL" lang="ES-CL">l_mod -> este es el tipo de cifrado, en este caso le solicitamos que opere con un cifrado en bloque de 3</span></p> <p class="MsoNormal"><span style="" lang="ES-CL">3.- enc_key -> por último la clave con la que se está encriptando les recomiendo útilizar una clave con la misma estructura que se define en el ejemplo</span></p><p class="MsoNormal">En Sql server 2005 y 2008 es con la siguiente función <span style="font-weight: bold;">encryptbypassphrase</span> es tan sencillo que no necesita ejemplo<br /><span style="" lang="ES-CL"></span></p>Pablo Hormazabalhttp://www.blogger.com/profile/03574118802551510918noreply@blogger.com0tag:blogger.com,1999:blog-4799890653937228250.post-85091714297481224482011-07-20T08:26:00.000-07:002011-07-20T08:41:36.869-07:00LLamada a un metodo XML-RPC<!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> <p class="MsoNormal" style="text-align:justify">XML-RPC es un protocolo desarrollado por Microsoft en conjunto con un ingeniero (no recuerdo el nombre) de la empresa UserLand Software a fines de los 90, ocupa XML como medio de codificación de datos y el protocolo http para la transmisión de mensajes, si bien es un protocolo simple y muy básico en cuanto a funcionalidades es la base de lo conocemos actualmente como SOAP. La invocación de estos servicios no es una tarea compleja pero debido a la escasa literatura que existe respecto a este tema he decidido dar un ejemplo de su implementación esperando que a más de a uno lo ayude.</p> <p class="MsoNormal">Para llevar a cabo la invocación se necesita lo siguiente:</p> <p class="MsoNormal"> </p> <p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1; tab-stops:list 36.0pt"><span style="mso-list:Ignore">1)<span style="font:7.0pt "Times New Roman""> </span></span>la Dirección Web en donde está alojado el servicio a llamar (url).</p> <p class="MsoNormal" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1; tab-stops:list 36.0pt"><span style="mso-list:Ignore">2)<span style="font:7.0pt "Times New Roman""> </span></span>El XML con los parámetros de entrada y las especificaciones del método(xmlparam).</p> <p class="MsoNormal" style="margin-left:36.0pt">El XML tiene la siguiente estructura<br /></p><blockquote class="codigo"><?xml version="1.0"?><br /><methodCall><br /><methodName>Nombre metodo</methodName><br /><params><br /><param><br /><value><i4>valor</i4></value><br /></param><br /></params><br /></methodCall><br /></blockquote><span style="mso-ansi-language:EN-US" lang="EN-US"></span> <p></p><p class="MsoNormal"><span style="mso-ansi-language:ES-CL" lang="ES-CL">Sabiendo esto la llamada la hacemos de la siguiente forma:</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New"; mso-ansi-language:EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;color:blue;" lang="EN-US" >public</span><span style="Courier New";mso-ansi-language:EN-US; mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" > <span style="color:blue;">string</span> LLamadaXMLRPC(<span style="color:blue;">string</span> url, <span style="color:blue;">string</span> xmlparam)</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>{</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span><span style="color:#2B91AF;">WebRequest</span> webRequest = <span style="color:#2B91AF;">WebRequest</span>.Create(url);</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>webRequest.ContentType = <span style="color:#A31515;">"application/x-www-form-urlencoded"</span>;</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>webRequest.Method = <span style="color:#A31515;">"POST"</span>;</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span><span style="color:blue;">byte</span>[] bytes = <span style="color:#2B91AF;">Encoding</span>.ASCII.GetBytes(xmlparam);</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span><span style="color:#2B91AF;">Stream</span> os = <span style="color:blue;">null</span>;</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span><span style="color:blue;">try</span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>{ <span style="color:green;">// send the Post</span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>webRequest.ContentLength = bytes.Length;<span style="mso-spacerun:yes"> </span><span style="color:green;">//Count bytes to send</span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span></span><span style="Courier New";mso-no-proof:yesfont-family:";font-size:10.0pt;" >os = webRequest.GetRequestStream();</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>os.Write(bytes, 0, bytes.Length);<span style="mso-spacerun:yes"> </span><span style="color:green;">//Send it</span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>}</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span><span style="color:blue;">catch</span> (<span style="color:#2B91AF;">WebException</span> ex)</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>{</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>//</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>}</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span><span style="color:blue;">finally</span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>{</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span><span style="color:blue;">if</span> (os != <span style="color:blue;">null</span>)</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>{</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>os.Close();</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>}</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>}</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" > </span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span><span style="color:blue;">try</span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>{ <span style="color:green;">// get the response</span></span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span><span style="color:#2B91AF;">WebResponse</span> webResponse = webRequest.GetResponse();</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span><span style="color:blue;">if</span> (webResponse == <span style="color:blue;">null</span>)</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>{ <span style="color:blue;">return</span> <span style="color:blue;">null</span>; }</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span><span style="color:#2B91AF;">StreamReader</span> sr = <span style="color:blue;">new</span> <span style="color:#2B91AF;">StreamReader</span>(webResponse.GetResponseStream());</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span><span style="color:blue;">return</span> sr.ReadToEnd().Trim();</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>}</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span><span style="color:blue;">catch</span> (<span style="color:#2B91AF;">WebException</span> ex)</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-ansi-language: EN-US;mso-no-proof:yesfont-family:";font-size:10.0pt;" lang="EN-US" ><span style="mso-spacerun:yes"> </span>{</span></p> <p class="MsoNormal" style="margin-left:70.8pt;text-indent:35.4pt;mso-layout-grid-align: none;text-autospace:none"><span style="Courier New"; mso-no-proof:yesfont-family:";font-size:10.0pt;" >//</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-no-proof:yesfont-family:";font-size:10.0pt;" ><span style="mso-spacerun:yes"> </span>}</span></p> <p class="MsoNormal" style="mso-layout-grid-align:none;text-autospace:none"><span style="Courier New";mso-no-proof:yesfont-family:";font-size:10.0pt;" ><span style="mso-spacerun:yes"> </span><span style="color:blue;">return</span> <span style="color:blue;">null</span>;</span></p> <p class="MsoNormal"><span style="Courier New"; mso-no-proof:yesfont-family:";font-size:10.0pt;" ><span style="mso-spacerun:yes"> </span>}</span></p><p class="MsoNormal">Al ver el código se darán cuenta que la llamada es a través de un POST y tiene como propiedad<span style="mso-spacerun:yes"> </span><span style="Courier New";mso-no-proof: yesfont-family:";font-size:10.0pt;color:#A31515;" >"application/x-www-form-urlencoded",</span> esto tiene como función codificar todos los caracteres antes de que sean enviados.</p> <!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]-->Pablo Hormazabalhttp://www.blogger.com/profile/03574118802551510918noreply@blogger.com0tag:blogger.com,1999:blog-4799890653937228250.post-36129582726596897632011-07-19T06:54:00.000-07:002011-07-19T07:15:48.696-07:00Nuevamente escribiendo<!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tabla normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> <p class="MsoNormal"><span style="font-family:Arial;font-size:10.0pt;">Hace casi 2 años que no me doy el tiempo de escribir algunas palabras con el solo fin de compartir mis ideas o entregar conocimiento, ésta practica si bien era esporádica me relajaba, me permitía descargar esas emociones contenidas y sentir que se las gritaba al mundo. Por otro lado cuando escribía cosas técnicas sentía que realmente estaba enseñando lo que yo deseaba enseñar y no lo que me imponían enseñar, y aquí estoy nuevamente poniendo mis dedos en un teclado para transmitir lo que me de la gana y esperar ser un aporte al que lee. Este blog lo cree el 2006 y con suerte escribí en él, es más apenas me recordaba que lo tenía fue Google plus el que me lo recordó desde ahora pretendo ocuparlo como mí espacio para hacer todo lo que mencioné anteriormente, aclarado este primer post en mucho tiempo es de un descargo que espero que mas de un chileno comparta conmigo <span style="mso-spacerun:yes"> </span></span></p> <p style="font-style: italic; font-weight: bold;" class="MsoNormal"><span style="font-family:Arial;font-size:10.0pt;">No es la forma de gobernar el pasar por encima de las decisiones de un congreso, que pena que nuestro presidente al cual siempre apoyé cometa este tipo de errores y que no diferencie que no siempre la legalidad es amiga de la moralidad, que pena también por los miembros del TC <span style="mso-spacerun:yes"> </span>que se creen superiores a los elegidos por el pueblo, eliminemos el congreso ya que con esta forma de gobernar está realmente de más, que aprueben las leyes los del TC y que nuestro presidente tome decisiones de forma unilateral. Que pena por todas las mujeres profesionales en donde incluyo a mi esposa que no podrá disfrutar de un postnatal parejo para todas las chilenas, espero que el país no se haga el sordo y demuestre su descontento, aunque por lo que hemos visto estas últimas semanas muy poco le interesa al gobierno la opinión de la ciudadanía.</span></p>Pablo Hormazabalhttp://www.blogger.com/profile/03574118802551510918noreply@blogger.com0tag:blogger.com,1999:blog-4799890653937228250.post-68474327760526804022008-03-15T14:59:00.000-07:002008-03-15T15:04:29.383-07:00DISCURSO DEL BUEN LADRÓN<p>Acuérdate de mí cuando estés en tu reino</p><p>Nómbrame Presidente del Senado </p><p>Nómbrame Director del Presupuesto</p><p>Nómbrame Contralor General de la República.</p><p>Acuérdate de la corona de espinas </p><p>Hazme Cónsul de Chile en Estocolmo </p><p>Nómbrame Director de Ferrocarriles </p><p>Nómbrame Comandante en Jefe del Ejército.</p><p>Acepto cualquier cargo</p><p>Conservador de Bienes Raíces</p><p> Director General de Bibliotecas </p><p>Director de Correos y Telégrafos.</p><p>Jefe de VialidadVisitador de Parques y Jardines</p><p>Intendente de la Provincia de Ñuble.</p><p>Nómbrame Director del Zoológico.</p><p>Gloria al Padre<br />..................... Gloria al Hijo........................................ Gloria al Espíritu Santo</p><p>Nómbrame Embajador en cualquier parte </p><p>Nómbrame Capitán del Colo-Colo </p><p>Nómbrame si te placePresidente del Cuerpo de Bomberos.</p><p>Hazme rector del Liceo de Ancud.</p><p>En el peor de los casos Nómbrame Director del Cementerio. </p><p>Como verán todos eso cargos los posee un ladron, así que si su trabajo aparece por ahi nunca es tarde para hacer las cosas bien. </p>Pablo Hormazabalhttp://www.blogger.com/profile/03574118802551510918noreply@blogger.com1tag:blogger.com,1999:blog-4799890653937228250.post-57764345689071011322008-01-04T08:59:00.000-08:002008-01-04T09:12:26.154-08:00Comparación entre Java y Visual Studio<div align="justify"><span style="font-family:arial;"><span style="font-size:85%;"><em>"Para muchos desarrolladores de java se les torna complejo realizar un cambio de lenguaje, o muchas veces por desconocimiento desechan algunas opciones, en el siguiente artículo veremos un análisis comparativo entre java y las tecnologías .Net."</em></span></span></div><div align="justify"><span style="font-family:arial;"></span><span style="font-family:Arial;"></span></div><div align="justify"></div><div align="justify"><span style="font-family:times new roman;">Java y Visual Studio no se compilan a código maquina si no que se compilan a un formato intermedio, aunque parezca una semejanza en este punto nace la primera gran diferencia, ya que estas dos implementaciones difieren fundamentalmente en su filosofía. Comparar Common Language Runtime con la máquina virtual de Java sólo resulta razonable hasta cierto punto, ya que sus objetivos en cuanto a la arquitectura son muy diferentes.<br /><br />Sun Microsystems promueve un programa de marketing llamado 100% Pure Java que resulta ciertamente muy adecuado cuando lo que se persigue es la portabilidad del código y la transparencia del sistema operativo subyacente. Sin embargo, muchos servidores de aplicaciones Java de terceros crean una ventaja competitiva al utilizar de forma muy acertada las llamadas a funciones de "C" (a través de Java Native Interface o JNI) en servicios de valor añadido de sus sistemas operativos host, que no expone la plataforma de aplicaciones Java (la biblioteca de clases Java). Las llamadas a la plataforma principal constituyen el único mecanismo viable para utilizar la funcionalidad base que sólo se presenta a través de una interfaz nativa.<br /><br />La máquina virtual de Java es una auténtica "máquina virtual" cuyo principal objetivo es abstraer (hacer virtual) el sistema operativo subyacente y proporcionar un entorno de desarrollo idealizado (no necesariamente ideal, sino idealizado). También está íntimamente unida a la API, la plataforma de aplicaciones Java, en la que los servicios los proporciona la implementación de la máquina virtual. Independientemente de dónde ejecute el código Java compilado, lo ejecutará dentro del contexto de la máquina virtual y lo vinculará ostensiblemente con las API de la plataforma Java proporcionadas.<br /><br />El nombre de .NET Common Language Runtime es muy acertado, ya que se utiliza más como tiempo de ejecución de lenguaje que como máquina virtual. Aunque no tiene problemas para abstraer los aspectos del hardware subyacente mediante el uso de un lenguaje intermedio, cuando CLR se combina con la biblioteca de API de .NET Framework, se vincula a la plataforma subyacente, Windows. CLR proporciona todos los servicios de la plataforma Windows a cualquier lenguaje habilitado para .NET.<br /><br />Otra diferencia entre estas dos herramientas es la seguridad de sus aplicaciones, puesto que en .Net, además de las API utilizadas para la criptografía, las cookies de seguridad y la autenticación, existe un mecanismo enriquecido y extensible para la asignación de distintos niveles de permisos a conjuntos de usuarios diferentes en función del origen del código. Por ejemplo, todo el código de Microsoft se puede considerar seguro. Se puede otorgar (o denegar) acceso de lectura y escritura sobre determinados recursos (tales como la pantalla o el directorio temporal) al código que proceda de una URL específica. Asimismo, se pueden marcar algunas aplicaciones para especificar que necesitan determinados permisos (por ejemplo, el acceso al sistema de archivos). Si estos permisos no se encuentran disponibles, la aplicación no se cargará. Puesto que la comprobación de seguridad se realiza en el momento de la carga, no es necesario que el desarrollador escriba en la aplicación lógica para la detección de errores de seguridad. Todo este proceso se administra a través de una nueva tecnología, llamada "seguridad de acceso al código", que funciona con código cargado desde Internet o el equipo local, lo que hace de Visual Studio mas seguro en sus aplicaciones respecto a Java .<br /><br />El sistema de control de versiones de Visual Studio .Net es más robusto que el de Java. En Java, si se instalan dos versiones de la misma clase, el tiempo de ejecución sólo cargará la primera clase que encuentre en la ruta de acceso de clases, sin tener en cuenta la versión. En cambio, Visual Studio .Net se ha diseñado para ofrecer una amplia compatibilidad con todo tipo de versiones. Con la ejecución página tras página, se pueden cargar y ejecutar a la vez varias versiones diferentes de la misma clase. Cada aplicación puede seleccionar su mecanismo de enlace: enlazar a una versión específica de una biblioteca de clases, la más reciente, o bien, a una versión que se encuentre en una ubicación específica. Asimismo, se pueden aplicar directivas por equipos para reemplazar o volver a definir más adelante el control de versiones. Este control de versiones se aplica también a los lenguajes de programación.<br /><br />La característica de Visual Studio .Net que realmente destaca sobre las de Java es la capacidad para definir el rendimiento y el comportamiento de las aplicaciones. Las unidades principales de creación de aplicaciones se han diseñado para ofrecer escalabilidad y un rendimiento elevado. Por ejemplo, con el acceso a datos desconectado de ADO.NET, se pueden realizar en memoria un número mayor de funciones de datos, lo que en JDBC (Java Database Connectivity) exige un recorrido de ida y vuelta a la base de datos. Además, la arquitectura de la aplicación .NET se ha diseñado para que ésta sea más rápida. Por ejemplo, las páginas Web ASP.NET ofrecen un rendimiento altamente mejorado en comparación con las páginas Active Server (ASP), las páginas Java Server Pages (JSP) y los lenguajes de secuencias de comandos incrustados HTML. Si lo comparamos con la plataforma Java, el rendimiento de .NET resulta mejor no sólo en escenarios de un único usuario, sino también en escenarios multiusuario.<br /><br />Otra diferencia fundamental es la portabilidad que nos proporciona Java, ya que a diferencia de .Net una aplicación construida en Java se puede ejecutar en distintos tipos de Sistemas Operativos sin ningún problema.</span></div>Pablo Hormazabalhttp://www.blogger.com/profile/03574118802551510918noreply@blogger.com1tag:blogger.com,1999:blog-4799890653937228250.post-6021932630113107892006-12-01T10:57:00.000-08:002006-12-01T10:57:08.743-08:00<a href="http://photos1.blogger.com/x/blogger2/6618/585924152091946/1600/181479/000_1344.jpg"><img style="CLEAR: both; FLOAT: left" alt="" src="http://photos1.blogger.com/x/blogger2/6618/585924152091946/320/978814/000_1344.jpg" border="0" /></a> <a href='http://picasa.google.com/blogger/' target='ext'><img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /></a> Pablo Hormazabalhttp://www.blogger.com/profile/03574118802551510918noreply@blogger.com4tag:blogger.com,1999:blog-4799890653937228250.post-7362315995046545762006-12-01T10:39:00.000-08:002011-07-19T07:15:43.980-07:00Iluminar HualpénHace un tiempo, en la comuna de Hualpén donde he estado trabajando ultimamente nos hemos puesto una meta, entregar Internet a todos los habitantes de la comuna. Pero que es lo que mas importa del proyecto solo entregar Internet, o entregar un servicio integral donde Internet sea una herramienta para una meta aun mayor la cual es <em>"lograr un desarrollo social, cultural y educacional en todos los habitantes de la comuna".</em><br /><br />Teniendo en cuenta que Internet como red de comunicación global no afecta sólo a un tipo de sociedad única y coherente, pues su poder atraviesa distancias, barreras geográficas, barreras políticas y zonas horarias. Hoy, las principales actividades económicas, sociales, políticas y culturales de todo el mundo se están estructurando en torno a Internet. Es por lo mismo que se ve como solución entregarles un servicio gratuito y de calidad a todos los habitantes de Hualpén, pero que es realmente un servicio de calidad, no es solo permitir acceso a Internet libre, también debe ir de la mano con un trabajo de concientización ya que tenemos que tener muy en claro que la tecnología triunfa cuando esta triunfa socialmente.<br /><br /> La visión del proyecto debe estar enfocada en tener bien en claro cual es el beneficio social que la propuesta entregará, y como se planificará el trabajo integrador entre las tecnologías y los habitantes de la comuna, no vasta con poner antenas ya que esto no provoca una transformación cultural, social y educacional. De la mano de la vision de nuestro alcalde y del equipo que el a formado para la realización de este sueño pretendemos ubicar a la comuna de Hualpén como un centro de desarrollo dentro de chile. Tomando en cuenta lo anterior, y lo visionario del proyecto solo nos queda trabajar duro y enfretar este hermoso desafío todo en beneficio de los habitantes de Hualpén que es lo que mas le importa a nuestro alcalde y a nosotrosPablo Hormazabalhttp://www.blogger.com/profile/03574118802551510918noreply@blogger.com5