ASP.NET: Caso omiso al ReturnUrl en el control Login

Esta sencilla acción era lo que necesitaba Alexa (desde los newsgroup de ASP.NET)…quien me llevo a escribir este presente post.

Cual es la necesidad (.. de Alexa)??

No necesitaba la “funcionalidad” de redirección que realiza por defecto el Proveedor de Membresia cuando utilizamos la autenticación de formularios, cuando envía a la pagina de Login el parámetro por QueryString de ReturnUrl

Mas info: Flujo de control de autenticación de formularios

Porque por defecto cuando asignamos la seguridad y solicitamos la pagina:
     http://www.miempresa.com/principal.aspx
se redirección para la petición de credenciales (user/pass) a la pagina:
     http://www.miempresa.com/login.aspx?ReturnUrl=principal.aspx

La solución que recomendé, por no conocer otra posibilidad 😉 (escuchamos en los comentarios alguna otra alternativa)
Esto es similar a:

Solución

Al momento de logearse el usuario redireccionar al lugar deseado, esto es el evento LoggedIn

image

 

protected void Login1_LoggedIn(object sender, EventArgs e)
   {
       Response.Redirect("nuevaUbicacion.aspx");
   }

 

 

para Curiosos…

Para los curiosos con “El Gran Reflector.NET” nos da luz en las sombras, podremos ver como lo obtiene y ver como funciona algunos parámetros

image

Friend Shared Function GetReturnUrl(ByVal useDefaultIfAbsent As Boolean) As String
    FormsAuthentication.Initialize
    Dim current As HttpContext = HttpContext.Current
    Dim str As String = current.Request.QueryString.Item("ReturnUrl")
    If (str Is Nothing) Then
        str = current.Request.Form.Item("ReturnUrl")
        If ((Not String.IsNullOrEmpty(str) AndAlso Not str.Contains("/")) AndAlso str.Contains("%")) Then
            str = HttpUtility.UrlDecode(str)
        End If
    End If
    If ((Not String.IsNullOrEmpty(str) AndAlso Not FormsAuthentication.EnableCrossAppRedirects) AndAlso Not UrlPath.IsPathOnSameServer(str, current.Request.Url)) Then
        str = Nothing
    End If
    If (Not String.IsNullOrEmpty(str) AndAlso CrossSiteScriptingValidation.IsDangerousUrl(str)) Then
        Throw New HttpException(SR.GetString("Invalid_redirect_return_url"))
    End If
    If ((str Is Nothing) AndAlso useDefaultIfAbsent) Then
        Return FormsAuthentication.DefaultUrl
    End If
    Return str
End Function

En C# (para los que no le gusta leer Dim)

internal static string GetReturnUrl(bool useDefaultIfAbsent)
{
    Initialize();
    HttpContext current = HttpContext.Current;
    string str = current.Request.QueryString["ReturnUrl"];
    if (str == null)
    {
        str = current.Request.Form["ReturnUrl"];
        if ((!string.IsNullOrEmpty(str) && !str.Contains("/")) && str.Contains("%"))
        {
            str = HttpUtility.UrlDecode(str);
        }
    }
    if ((!string.IsNullOrEmpty(str) && !EnableCrossAppRedirects) && !UrlPath.IsPathOnSameServer(str, current.Request.Url))
    {
        str = null;
    }
    if (!string.IsNullOrEmpty(str) && CrossSiteScriptingValidation.IsDangerousUrl(str))
    {
        throw new HttpException(SR.GetString("Invalid_redirect_return_url"));
    }
    if ((str == null) && useDefaultIfAbsent)
    {
        return DefaultUrl;
    }
    return str;
}

 

 

 

Enlaces

[Classic ASP] Ejecutar ASP Clásico en Windows 7 (IIS 7.5) y enviar errores al explorador

 

En estos días volví a manipular un proyecto de ASP 3.0 (Classic ASP) y recordé viejas épocas del código spagetti.

Necesitaba probarlo así que en mi maquina era ejecutarlo desde Windows 7… dejo por aquí los pasos y experiencias.

NOTA: Esto también valido para Windows 2008

 

Habilitando ASP Clásico

El mensaje de error a la petición de cualquier recurso con la extensión .asp

Error HTTP 404.3 – Not Found
No puede obtener acceso a la página solicitada debido a la configuración de la extensión. Si la página es un script, agregue un controlador. Si se debe cargar el archivo, agregue una asignación MIME.

En IIS7 y IIS7.5 la característica de ASP Clásico no viene instalado por defecto para ello nos vamos a Habilitar el servidor web para hospedar aplicaciones ASP Clásicas

Vamos a Panel de control…

 

image

Con esto ya tendremos disponible este característica.. entonces a probar las paginas .asp … si señor sin las “x” al final 🙂

 

Mensajes de Error

Luego el error venia con ayuda…

An error occurred on the server when processing the URL. Please contact the system administrator.

If you are the system administrator please click here to find out more about this error.

image

 

Pero este error es “generico” para devuelva el erro exacto deberías indicarle que nos envié este error el navegador

Para ello vamos a las características de nuestra aplicación ASP

image

image

Luego en las propiedades de depuración indicamos para “Enviar errores al explorador”

image

image

Luego ya es historia conocida…

Y esta propiedad?
Enviar errores al explorador [scriptErrorSentToBrowser]:
Especifica si el servidor web escribe información de depuración específica (nombre del archivo, error, número de línea, descripción) en el explorador del cliente, además de incluirla en el registro de eventos de IIS. El valor predeterminado es True.

Podremos aplicar esta propiedad ejecutando el siguiente comando en modo administrador:

%windir%system32inetsrvappcmd set config -section:asp -scriptErrorSentToBrowser:true

TIP: Para el usuario limitado de infraestructura como yo el comando appcmd me es un tanto extraño…  suerte que tenemos

 

Espero que les sirva de ayuda o guía.

 

Enlaces

MSN: Chat vía SMS en nuestro Live Messenger… tomando el control por mensajes de texto (Argentina)

image Algunos de mis amigos y amigas seguro que esto le vendrá muy bien… ya que suelen enviar 3000 mensajes en 3 días 😉
Hay que ver los costos, que los dejo mas abajo. Hagan calculo.

 

Cual es la idea?

Estar disponible en el MSN y chatear via SMS, sin necesidad de conexión GPRS, Wi-fi, … a puro SMS (mensajes de texto)

  •  
    •  
      •  
        •  
          •  
            •  
              • No hay nada que descargar. Funciona en cualquier móvil que admita mensajería de texto

            • Empieza a charlar hoy con tus contactos existentes de Windows Live Messenger

            • Cuando aparezcas como inactivo en tu equipo, se enviarán los mensajes entrantes a tu teléfono móvil.

NOTA: Desde ayer (14/Sep/2009) los que tengan su proveedor de Personal ya lo tienen disponible, y parece que en pocas semanas Movistar y Claro lo tendrán también.

Empezamos…

Tendremos que ir a registrarnos a: www.smsmessengerlive.com

 

image

Al finalizar los pasos recibiremos ayuda por SMS, alli podremos conectarnos y esperar a que nos “bombardeen de mensajes” nuestros queridos amigos.

Como utilizarlo?

Con mi proveedor de telefonía me envió un numero a donde enviar los comandos

  • Iniciar session: Enviar un sms a un numero que lo agende con el texto ON
  • Cerrar Session: texto OFF
  • Para chatear (via sms) con amigos nos agrega un numero identificatorio para enviar SMS a ese amigo
  • y varias palabras claves mas ESTOY/UPDATE seguida del texto que quiero que se visualice, y la conocina AYUDA para cualquier tema

 

 

Cuales son los costos?

Para el proveedor de telefonía Personal (Argentina)

http://www.personal.com.ar/smsmessenger/precio.html

image image

 

 

Enlaces

TFS: Instalando EPiServer Scrum Dashboard para TFS 2008

image

Hace un buen tiempo que estamos en la empresa utilizándolo como alternativa visual para el TFS Web Access, mas que nada para las tareas cotidianas y para tener un pantallazo general de los Sprint y el movimiento de tareas.
Como tenia que actualizar la versión la dejo por aquí por si alguien la necesita

 

NOTA 1: Este post lo tenia guardado en borrador desde el principio de año y como hoy leo de mis fuentes rss el post de Francisco Fagas

NOTA 2: También veo que esta la version 2.4 (Mayo 2009) que trae un par de soluciones a algunos bugs 🙂 … aqui verán los screenshot con la version 2.3

 

Que es el EPiServer Scrum Dashboard?

(from CodePlex) “…Scrum Dashboard is a web front-end for Conchangos Scrum for Team System version 2. The main goal of this project is to replace the whiteboard and simplify daily work with Scrum artifacts in Team Foundation Server 2008…”

http://scrumdashboard.codeplex.com/

image

 

Algo parecido ..

 

Cuando lo descargamos la release que es un simple .zip tendremos dos carpetas el web y la base de datos (que es un script)

image

 

Instalado la DB

Aquí se encuentra el script para crear la DB

image

Hay que instalarlo en nuestro motor… como es un script simplemente lo ejecutamos desde la master (claro..! con los permisos adecuados para estas tareas)

image

y ya tendremos la base de datos que utiliza Scrum Dashboard

image

 

Instalando la Web

Agregando el directorio virtual.

En nuestro sitio del TFS Web Access debemos agregar un directorio virtual direccionando a una carpeta donde copiaremos el contenido de la web de Scrum Dashboard.

image

Si estas leyendo este articulo estas familiarizado con directorios virtual sino: Cómo: Crear y configurar directorios virtuales en IIS 5.0 y 6.0

Configurando

Como toda aplicación web hay que darle el toque final con parámetros de unos AppSettings y el ConnectionString.
Que como podemos imaginar serian url de TFSWA, y otros… (tfsServer, tfsWebAccess, tfsWebAccessRelative, tfsReportServer, tfsViewBugsAsProductBacklogs, tfsKeepAlive, WorkItemTrackingCacheRoot)
image

 

 

 

 

 

 

 

 

y funcionando

image

🙁 tengo que actualizar a la version 2.4 (Mayo 2009)