tag route net mvc for data asp all asp.net asp.net-mvc-3 iis-7

asp.net - route - tag helpers asp net core



¿Solicitar redirección a/Cuenta/Login? ReturnUrl=% 2f desde que MVC 3 se instaló en el servidor (13)

Tenemos una aplicación interna de ASP.NET Webforms ejecutándose en un servidor Windows 2008 / IIS7 que funciona bien hasta que instalamos MVC3.

Ahora, ¿las solicitudes redirigen a / Account / Login? ReturnUrl =% 2f.

El sitio web es Webforms no MVC. Debido a que es un sitio interno único, tenemos la Autenticación de Windows habilitada para la carpeta raíz.

Tenemos varios otros sitios web en el mismo servidor que no se han visto afectados por este problema, pero este es el único sitio donde la carpeta raíz está configurada para Autenticación de Windows.


A resolver esto agregando en la opción defaultURL la ruta de mi aplicación

<forms loginUrl="/Users/Login" protection="All" timeout="2880" name="001WVCookie" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="/Home/Index" cookieless="UseCookies" enableCrossAppRedirects="false" />


Abra web.config, luego cambie

<authentication mode="Forms"> <forms loginUrl="~/Account/Login.aspx" timeout="2880" /> </authentication>

A

<authentication mode="Forms"> <forms loginUrl="~/Login.aspx" timeout="2880" /> </authentication>

cambiar a ~ / Default.aspx


Agregamos algunas cosas relacionadas con WCF SOAP a un sitio IIS existente y esto causó este problema, y ​​el sitio se negó a cumplir con la redirección de autenticación web.config.

Probamos varias correcciones sin éxito, e inventamos un trabajo de mapeo de la nueva URL extraña a la que hemos estado utilizando durante años:

<urlMappings enabled="true"> <add mappedUrl="~/loginout.aspx" url="~/Account/Login"/> </urlMappings>

Eso funcionó pero es feo. Eventualmente lo rastreamos hasta una entrada web.config agregada por Visual Studio algún tiempo antes:

<add key="webpages:Enabled" value="true" />

Como no pudimos determinar con precisión qué es lo que hace, lo sacamos, lo que nos solucionó el problema de inmediato.


Después de 4 horas, de intentarlo todo ... Windows 2008 R2 los archivos estaban verdes en el Explorador de Windows. Los archivos fueron marcados para el cifrado y el archivado que provienen del archivo zip. desmarcar esas opciones en la propiedad del archivo solucionó el problema para mí.


Drezus: lo resolviste por mí. Muchas gracias.

En su AccountController, el inicio de sesión debería verse así:

[AllowAnonymous] public ActionResult Login(string returnUrl) { ViewBag.ReturnUrl = returnUrl; return View(); }


Lo arreglé de esta manera

  1. Ir a IIS
  2. Seleccione su proyecto
  3. Haga clic en "Autenticación"
  4. Haga clic en "Autenticación anónima"> Editar> seleccione "Identidad del grupo de aplicaciones" en lugar de "Usuario específico".
  5. Hecho.

Mi solución fue agregar la etiqueta

[Permitir anónimos]

sobre mi solicitud GET para la página Registrar. ¡Originalmente faltaba en el código que mantenía!


Resolví el problema agregando las siguientes líneas a la sección AppSettings de mi archivo web.config:

<add key="autoFormsAuthentication" value="false" /> <add key="enableSimpleMembership" value="false"/>


Respuesta actualizada para MVC 4, fuertemente tomada de esta página y ASP.NET MVC con configuración de la sección de autenticación de formularios (y respondida en ambas páginas)

<appSettings> ... <add key="PreserveLoginUrl" value="true" /> </appSettings> ... <authentication mode="Forms"> <forms loginUrl="~/Account/LogOn" timeout="43200" /> <!--43,200 in minutes - 30 days--> </authentication>


Sé bueno con esto:

RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new System.Web.Mvc.AuthorizeAttribute()); }


Se ha resuelto que la solicitud de IIS redirija automáticamente a la página predeterminada ( default.aspx o página de inicio de sesión)

Al agregar las siguientes líneas a la sección AppSettings de mi archivo web.config :

<add key="autoFormsAuthentication" value="false" /> <add key="enableSimpleMembership" value="false"/>


Si nada funciona, agregue el modo de autenticación = "Windows" en su atributo system.web en su archivo Web.Config. Espero que funcione para usted.


Solo eliminar

<authorization> <deny users="?"/> </authorization>

desde su archivo web.config

eso hizo por mí