Pregunta

Desde mi último pregunta , se ha descubierto que el enrutamiento Asp.net no puede enrutar con la URL existente para obtener más información lea esto .

¿Cómo redirigir la url existente a otra url usando el enrutamiento Asp.net?

Sugerencia!

Creo que este comportamiento como acceso denegado que siempre redirige a la página de inicio de sesión predeterminada.

Gracias ,

¿Fue útil?

Solución 2

Encontré la solución. Es muy fácil usando HttpModule. Mire mi siguiente código de ejemplo.

En global web.config

<configuration>
    <system.web>
        <httpModules>
            <add name="RedirectModule" type="MySolution.RedirectModule, MySolution" />
        </httpModules>
    </system.web>
    <!-- The following code will be used by IIS 7+ -->
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true">
            <remove name="RedirectModule" />
            <add name="RedirectModule" type="MySolution.RedirectModule MySolution" />
        </modules>
    </system.webServer>
</configuration>

En MySolution / RedirectModule.cs

using System;
using System.Web;

namespace MySolution
{
    public class RedirectModule : IHttpModule
    {
        #region IHttpModule Members

        public void Init(HttpApplication context)
        {
            context.BeginRequest += new EventHandler(HttpApplication_BeginRequest);
        }

        public void Dispose() {}

        #endregion

        void HttpApplication_BeginRequest(object sender, EventArgs e)
        {
            HttpApplication app = sender as HttpApplication;

            if (*[logic for checking before redirect]*)
            {
                app.Response.Redirect(*[url]*);
            }
        }
    }
}

Para obtener más información, consulte el código fuente del mapeo de url como UrlRewritingNet.UrlRewrite .

PS. IHttpModule es una interfaz muy poderosa. Se puede manejar con cada tipo de solicitud. Entonces, puede ayudarme a resolver completamente esta pregunta.

Otros consejos

Debe asegurarse de que la url -existente- esté 'encontrada' / 'coincidente' en la tabla de rutas, y la url a la que está redirigiendo no es ... (a menos que esté redirigiendo a una acción / ruta del controlador )

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top