..:o5k4r.m4dr1d


Encriptar y Desencriptar web.config [ASP.NET]

Recientemente, tenía que reconstruir un aplicativo de .Net, y en el archivo de configuración tenia un par de secciones encriptadas; tenía algo como esto:

< connectionStrings configProtectionProvider="DataProtectionConfigurationProvider" >
< EncryptedData>
< CipherData>
< CipherValue >JySX1m74va5BDVh7ETlc5KSKMfJGjQr5MryQyU7NZLKQmjpBrj3R82wqL9DWP6MHKXoU9qML0dNeXmh2KLBwIAjivBI5gLykLZDGoodM1ZYO7R0VvTRmlv9e+gL4uKGpY01wUAAAADZFcDLWco4SFKeVWKqB34g06a5w=< /CipherValue>
< /CipherData>
< /EncryptedData>
< /connectionStrings>

Afortunadamente, tenía acceso al equipo que encriptó esta sección, ya que únicamente desde ese equipo sería posible desencriptarlo.

Para desencriptar, usé el siguiente comando:

aspnet_regiis.exe -pdf "connectionStrings" "C:\Websites\wsPrueba"

Y para encriptar, sería con éste otro:

aspnet_regiis.exe -pef "connectionStrings" "C:\Websites\wsPrueba"

En donde:

-pdf: Comando utilizado para desencriptar. Recibe como parámetro una ruta física a una aplicación web.
-pef: Comando utilizado para encriptar. Recibe como parámetro una ruta física a una aplicación web
connectiontrings: Es la sección que queremos encriptar.
"C:\Websites\wsPrueba" es la ruta física de nuestro portal.

Espero les sea útil.

Anuncios

Custom Validator and CheckBoxList

Posted in .Net 2005,.Net 2008,.NET 2010,.Net 2013,Desarrollo Web,Soluciones,Windows por o5k4r.m4dr1d en junio 22, 2017
Tags: , , , ,

Recently, I was working on WebForms, with a CustomValidator associated to a CheckBoxList. The validator is working correctly, but is shown on a new line. For the rest of the controls, like textbox or dropdownlist, it works perfectly.

CustomValidatorThis is caused because the Checkboxlist, generates a HTML table element, wich by default is a block level element.

To fix this, we must add a CSS class to the checkboxlist, with the style property:

{
float: left;
}

With this style, the CustomValidator will be shown next to the CheckBoxList.

Javascript and CSS reference on MasterPage

En un desarrollo que estoy haciendo, en ASP .Net, Framework 3.5, tenía que incluir algunos scripts para cubrir una necesidad, y las referencias para incluir CSS ó JS, es ya muy conocida por todos:


<*link rel="stylesheet" href="/css/grid.css" type="text/css" media="screen" */>
<*script src="/js/jquery-1.6.min.js" type="text/javascript"><*/script>
<*/code>

Pero el problema viene cuando lo tienes que usar en una MaterPage y cuando la ASPX y la MasterPage están en diferentes carpetas, es muy común que no tome la ubicación, aún y cuando se use ~, que como sabemos sirve para indicar el folder raíz.. esto sucede básicamente por el uso del ToolkitScriptManager.

La solución para este caso, es en el HTML de la MasterPage usar la referencia de ésta manera (sólo quita los asteriscos *):


<*head runat="server">
<*title><*/title>
<*link href="<%# ResolveUrl("~/")%>css/custom-theme/jquery-ui-1.8.21.custom.css"
rel="stylesheet" type="text/css" /*>
<*script src="<%# ResolveUrl("~/")%>Scripts/jquery-ui-1.8.20.min.js" type="text/javascript"><*/script>
<*asp:ContentPlaceHolder ID="head" runat="server"><*/asp:ContentPlaceHolder>
<*/head>

Y en el codeBehind de la MasterPage, agregar el siguiente método:


protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
Page.Header.DataBind();
}

Aplicaciones para descompilar (.NET)

Un decompilador es un programa de ordenador que realiza la operación inversa a un compilador. Esto es, traducir código o información de bajo nivel de abstracción a un lenguaje o medio de mayor nivel de abstracción.

Es bastante común tener que darle mantenimiento a alguna aplicación, de la cual simplemente no se tiene la versión de código fuente, y no hay más, hay que generarla para aplicar esos cambios urgentes.

Entre los más comunes, tenemos:

(more…)

Custom error page in IIS

Hace poco, en la oficina teníamos dos versiones de un mismo portal, por lo cual el requerimiento fue unificar las versiones y dar de baja el sitio de la la versión 2.

Al dar de baja el sitio de la versión 2, era necesario mostrar una página de error personalizada, por lo que en el Web.config puse lo siguiente:

<customErrors defaultRedirect="errorPage.htm" mode="On">
<error statusCode="404" redirect="NotFound.aspx"/>
</customErrors>

(more…)

Decompilar DLL, EXE para .NET [Reflector]

¿Quieres decompilar una DLL ó un EXE escrito en .NET?

Reflector es para tí.
Logo
Reflector es una aplicación que te permite decompilar aplicaciones hechas con .NET, ya sean DLL, EXE, etc. La aplicación ofrece una versión de prueba, misma que puedes descargar de esta página.

Reflector3

DW_KG

Contraseña del RAR:

bigerto

Tienes problemas para descargar de Adfly? Checa esta página.

COM object with CLSID {xxxx} is either not valid or not registered

El error es producido debido a que la aplicación usa un componente (una dll) que necesita ser registrada, y para hacerlo, se hace con el siguiente comando, desde un CMD:

(more…)

Ciclo de vida de soporte para productos Microsoft

En la siguiente URL, se encuentra el listado del ciclo de vida de soporte técnico para productos de Microsoft:

(more…)

C# display date time with milliseconds

Posted in .Net 2005,.Net 2008,.NET 2010,c#,Desarrollo Web,Soluciones por o5k4r.m4dr1d en mayo 21, 2013
Tags: , ,

Y para cuando sea necesario mostrar los milisegundos para un DateTime en C#, se hace de la siguiente forma:

(more…)

Desarrollar aplicaciones para Windows Phone 7.8 (Parte 1)

Parte 1 – Instalación de Software necesario

Soy desarrollador .NET de oficio, y al comprar un teléfono con Windows Phone, por supuesto que nació en mi el interés por desarrollar alguna aplicación e instalarla en mi equipo.

Por supuesto que toda la información se encuentra en la red, y estos son los pasos que yo he seguido para poder iniciar con el desarrollo.

Requisitos previos:

  • Windows® Vista® (x86 y x64) con el Service Pack 2 – en todas sus ediciones excepto la Starter Edition
  • Windows 7 (x86 y x64) – en todas sus ediciones excepto la Starter Edition
  • Al menos 4 GB de espacio libre en el disco duro de sistema.
  • 3 GB RAM
  • Visual Studio 2010

Ahora, teniendo lo anterior, vamos por lo siguiente:

  1. Es necesario descargar e instalar el Windows Phone SDK 7.1 de Microsoft.
  2. Al comenzar con la instalación, me advirtió el instalador que no tenía el SP 1 del Visual Studio 2010. Lo descargué de aquí.
  3. Descargado e instalado el SP1 del Visual Studio, ahora sí instalo en SDK 7.1.
  4. Debido a que en mi celular, tengo instalado Windows Phone 7.8, necesito instalar un Service Pack para el SDK, mismo que descargué desde aquí. Este SP aplica para equipos con versión 8 también.

Continuará..

Llamar función JavaScript desde C#

Posted in .Net 2005,.Net 2008,.NET 2010,c#,Soluciones por o5k4r.m4dr1d en abril 22, 2013
Tags:

Para invocar una funcion JavaScript, desde C#, se hace lo siguiente

Función JavaScript:

Jscript

 

 

 

 

 

 

Función C#:

cSharp

Microsoft JScript runtime error: The server request timed out.

Para unos cambios en una aplicación desarrollada en framework 4, con AjaxControlToolkit, con algunos updatePanels, recibía el siguiente error:

TimedOut

El problema se presenta debido a que al updatePanel se le termina el tiempo establecido por el scriptManager para esperar la respuesta del servidor, por lo cual, la solución es la siguiente:

(more…)

Utilizar más de un AutoCompleteExtender en una sola página

Hace algun tiempo, me encontré con la necesidad de utilizar más de un AutoCompleteExtender en una sola página.

El problema era causado por la propiedad:

BehaviorID=”AutoCompleteEx”

Después de investigar un poco, encontré que la solución era simplemente usar diferentes nombres en esa propiedad, es decir:

(more…)

if… else if… else if… alternativa

Posted in .Net 2008,.NET 2010,c#,Desarrollo Web por o5k4r.m4dr1d en diciembre 7, 2011

Al igual que muchos consejos y trucos sobre los lenguajes de programación, lo que voy a presentar aquí será tan absolutamente obvio para algunos desarrolladores de C #, pero podría ser una revelación a los demás.

¿Con qué frecuencia escribir algo como esto?

if (token == "A")
   tokenNumber = 1;
else if (token == "B")
   tokenNumber = 4;
else if (token == "C")
   tokenNumber = 5;
else if (token == "X")
   tokenNumber = 10;
else
   tokenNumber = 20;

Que tal escribirlo mejor así:

tokenNumber = (token == "A") ? 1:
              (token == "B") ? 4:
              (token == "C") ? 5:
              (token == "X") ? 10:
                               20;

Y es exactamente lo mismo, más limpio e inclusive un poco más corto.

Vía

Montar un sitio web – Bitacora

Posted in .NET 2010 por o5k4r.m4dr1d en septiembre 23, 2011

Desde hace algunos días, estoy colaborando con un colega para montar su sitio web, no es la primera vez que publico un sitio en internet, pero dado que los diferencias de usar un hosting u otro son varias, quiero empezar a documentar el proceso.

– La  empresa que contacté para el hosting, fué OKHosting, les contraté un plan básico, que finalmente lo que me interesaba era SQL Server y ASP.NET (tienen 1, 2 y 4). Buen precio y buena atención (claro, hasta este momento)

– Comencé el desarrollo utilizando el framework 2.0, todo iba bien hasta que quise publicar en el servidor, pero me dio mucha lata los controles de AjaxControlToolkit, ya que tenian que instalarse en el servidor.

– Solicité que me activaran el hosting para el fmk 4.

– Una vez migrado, subo los archivos al ftp utilizando Filezilla.

– En el primer ingreso hay error, pero no puedo ver el detalle, por lo que hay que poner en el web.config:

<customErrors mode=”Off” />

– El error generado es:

 Could not load file or assembly 'AjaxControlToolkit' or one of its dependencies. The system cannot find the file specified 

La lógica indica que no se encuentra AjaxControlToolkit.dll en el directorio BIN, pero la librería ahi está!. En mi caso, el problema fue que yo agregé la referencia directamente desde el IDE, y después, al arrastrar un control de Ajax a mi formulario, me pidió reemplazar, yo le dije que NO, y al final, la DLL que yo referencié, no era la misma que mis controles buscaban. La solucion fue, desde el IDE, eliminar la referencia, agregar un nuevo contro de Ajax, y esa DLL que agrega como referencia, es la que se tiene que subir.

– Solucionado lo anterior, el sitio ya se muestra, pero no carga la funcionalidad de Ajax, pero tampoco el Menu de Asp.NET (estoy utilizando el que provee el IDE), algunos de los errores de jscript al cargar la página son:

"sys is not defined"
asp.net ajax client-side framework failed to load

Después de darle muchas vueltas al asunto, noto que el problema tiene que ver con los archivos .axd, como si no los estuviera cargando, y además, viendo el web.config hay un comentario que pone el IDE:

  <system.webServer>
    <!--<modules runAllManagedModulesForAllRequests="true" />-->
<!--
 The system.webServer section is required for running ASP.NET AJAX under Internet
 Information Services 7.0.  It is not necessary for previous version of IIS.
 -->
  </system.webServer>

Después de navegar en internet, encuentro que hay que dejar web.config de la siguietne forma:

  <system.webServer>
    <!--<modules runAllManagedModulesForAllRequests="true" />-->
<!--
 The system.webServer section is required for running ASP.NET AJAX under Internet
 Information Services 7.0.  It is not necessary for previous version of IIS.
 -->
<!-- <validation validateIntegratedModeConfiguration="false"/> -->
 <modules>
 <remove name="ScriptModule"/>
 <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
 </modules>
 <handlers>
 <remove name="WebServiceHandlerFactory-Integrated"/>
 <remove name="ScriptHandlerFactory"/>
 <remove name="ScriptHandlerFactoryAppServices"/>
 <remove name="ScriptResource"/>
 <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
 <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
 <add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
 </handlers>
  </system.webServer>