web-dev-qa-db-fra.com

Demander une redirection vers/Account/Login? ReturnUrl =% 2f depuis l'installation de MVC 3 sur le serveur

Nous avons une application ASP.NET Webforms interne s'exécutant sur un serveur Windows 2008/IIS7 qui fonctionnait correctement jusqu'à l'installation de MVC3.

Désormais, toutes les demandes sont redirigées vers/Account/Login? ReturnUrl =% 2f.

Le site Web est Webforms pas MVC. Comme il s’agit d’un site interne uniquement, l’authentification Windows est activée pour le dossier racine.

Plusieurs autres sites Web sur le même serveur n'ont pas été affectés par ce problème, mais il s'agit du seul site où le dossier racine est défini sur Authentification Windows.

47
johna

J'ai résolu le problème en ajoutant les lignes suivantes à la section AppSettings de mon fichier web.config:

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

Je l'ai corrigé de cette façon

  1. Sélectionnez votre projet
  2. Cliquez sur "Authentification"
  3. Cliquez sur "Authentification anonyme"> Modifier> sélectionnez "Identité de l'application Pool" au lieu de "Utilisateur spécifique".
  4. Terminé.
  5. Done.
29
Akiv

Mise à jour de la réponse pour MVC 4, fortement empruntée à cette page et Problème ASP.NET MVC avec la section de configuration de l’authentification des formulaires (et réponse sur les deux pages)

<appSettings>
   ...
   <add key="PreserveLoginUrl" value="true" />
</appSettings>

...

<authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="43200" /> <!--43,200 in minutes - 30 days-->
</authentication>
7
Aaron Sherman

Juste enlever  

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

depuis votre fichier web.config

cela a fait pour moi

6
Avinash

Ma solution était d'ajouter le tag

[AllowAnonymous]

via ma requête GET pour la page d’enregistrement. Il manquait à l'origine du code que je gardais!

4
Drezus

Il est résolu la redirection automatique de la demande IIS vers la page par défaut (default.aspx ou page de connexion)

En ajoutant les lignes suivantes à la section AppSettings de mon fichier web.config:

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>
2
tushar malvi

A résoudre ceci en ajoutant à l'option defaultURL le chemin de mon application

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

Ouvrez web.config, puis Change

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

À

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

passer à ~/Default.aspx

1
Suzk AL

Nous avons ajouté des éléments liés à WCF SOAP à un site existant IIS et cela est à l'origine de ce problème, le site refusant d'honorer la redirection d'authentification web.config.

Nous avons essayé les différents correctifs répertoriés sans succès et avons inventé un moyen de mapper la nouvelle URL étrange sur celle que nous utilisions depuis des années:

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

Cela a fonctionné mais c'est moche. Finalement, nous l'avons tracé jusqu'à une entrée web.config ajoutée par Visual Studio un peu plus tôt:

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

Comme nous avions été incapables de déterminer exactement ce que cela faisait, nous l'avons éliminé, ce qui a immédiatement résolu le problème.

1
philw

Soyez avec cela:

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

Drezus - vous l'avez résolu pour moi. Merci beaucoup.

Dans votre AccountController, la connexion devrait ressembler à ceci:

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

Configuration similaire, problème identique. Certaines installations fonctionneraient, mais la plupart commenceraient à rediriger (http 302) vers/Account/Login? ReturnUrl =% 2f après une connexion réussie, même si nous n’utilisons pas l’authentification par formulaires. Dans mon cas, après avoir essayé tout le reste, la solution consistait à faire passer le mode pipeline géré du pool d'applications de intégré à classique, ce qui résolvait immédiatement le problème.

0
DonPedro

Après 4 heures, de tout essayer ... Windows 2008 R2, les fichiers étaient verts dans Windows Explorer. Les fichiers ont été marqués pour le cryptage et l'archivage provenant du fichier Zip. décocher ces options dans la propriété du fichier a résolu le problème pour moi.

0
manit

Si rien ne fonctionne, ajoutez ensuite authentication mode = "Windows" dans l'attribut system.web de votre fichier Web.Config. espérons que cela fonctionnera pour vous.

0
Santosh K