wake-up-neo.net

Umleitung zu/Account/Login anfordern? ReturnUrl =% 2f seit der Installation von MVC 3 auf dem Server

Wir haben eine interne ASP.NET-Webforms-Anwendung, die auf einem Windows 2008/IIS7-Server ausgeführt wird, der bis zur Installation von MVC3 ordnungsgemäß ausgeführt wurde.

Jetzt können alle Anfragen an/Account/Login weitergeleitet werden. ReturnUrl =% 2f.

Die Website ist Webforms und nicht MVC. Da es sich nur um eine interne Site handelt, ist die Windows-Authentifizierung für den Stammordner aktiviert.

Wir haben mehrere andere Websites auf demselben Server, die von diesem Problem nicht betroffen sind. Dies ist jedoch die einzige Site, auf der der Stammordner auf Windows-Authentifizierung festgelegt ist.

47
johna

Ich habe das Problem durch Hinzufügen der folgenden Zeilen zum Abschnitt "AppSettings" meiner Datei "web.config" gelöst:

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

Ich habe es so repariert

  1. Wählen Sie Ihr Projekt aus
  2. Klicken Sie auf "Authentifizierung"
  3. Klicken Sie auf "Anonyme Authentifizierung"> Bearbeiten> Wählen Sie "Anwendung Poolidentität" anstelle von "Bestimmter Benutzer" aus.
  4. Erledigt.
  5. Done.
29
Akiv

Antwort für MVC 4 aktualisiert, stark von dieser Seite entlehnt und ASP.NET MVC-Problem mit der Konfiguration des Formularauthentifizierungsabschnitts (und auf beiden Seiten beantwortet)

<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

Einfach entfernen  

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

aus Ihrer web.config-Datei

das tat für mich

6
Avinash

Meine Lösung bestand darin, den Tag hinzuzufügen

[AllowAnonymous]

über meine GET-Anfrage für die Registerseite. Ursprünglich fehlte es in dem Code, den ich pflegte!

4
Drezus

Die automatische Umleitung der Anforderung IIS zur Standardseite (default.aspx oder Anmeldeseite) wurde gelöst

Fügen Sie dem Abschnitt AppSettings meiner web.config-Datei die folgenden Zeilen hinzu:

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

Lösen Sie dies, indem Sie in der Option defaultURL den Pfad meiner Anwendung hinzufügen

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

Öffnen Sie die web.config und dann die Änderung

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

Zu

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

wechseln Sie zu ~/Default.aspx

1
Suzk AL

Wir haben ein paar WCF SOAP -bezogene Dinge zu einer vorhandenen IIS - Site hinzugefügt. Dies führte zu diesem Problem. Die Site weigerte sich, die Weiterleitungswebsite für die web.config-Authentifizierung zu berücksichtigen.

Wir haben die verschiedenen Korrekturen ohne Erfolg ausprobiert und eine Umgehung der Zuordnung der neuen seltsamen URL zu der, die wir seit Jahren verwenden, erfunden:

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

Das hat funktioniert, aber es ist hässlich. Schließlich haben wir es auf einen web.config-Eintrag zurückgeführt, den Visual Studio einige Zeit zuvor hinzugefügt hatte:

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

Da wir nicht genau herausfinden konnten, was das bedeutet, haben wir es herausgenommen, was das Problem für uns sofort gelöst hat.

1
philw

Sei ware mit diesem:

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

Drezus - du hast es für mich gelöst. Vielen Dank.

In Ihrem AccountController sollte das Login folgendermaßen aussehen:

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

Ähnliches Setup, identisches Problem. Einige Installationen würden funktionieren, aber die meisten würden nach einer erfolgreichen Anmeldung zu/Account/Login? ReturnUrl =% 2f umleiten (http 302), obwohl wir keine Forms-Authentifizierung verwenden. In meinem Fall, nachdem ich alles andere ausprobiert hatte, bestand die Lösung darin, den verwalteten Pipeline-Modus des Anwendungspools von Integrated auf Classic umzustellen, wodurch das Problem sofort gelöst wurde.

0
DonPedro

Nach 4 Stunden haben Sie alles versucht ... Windows 2008 R2 Die Dateien waren im Windows Explorer grün. Die Dateien wurden für die Verschlüsselung und Archivierung aus der ZIP-Datei markiert. Durch das Deaktivieren dieser Optionen in der Dateieigenschaft wurde das Problem für mich behoben.

0
manit

Wenn nichts funktioniert, fügen Sie in Ihrem system.web-Attribut in Ihrer Web.Config-Datei den Authentifizierungsmodus = "Windows" hinzu. Ich hoffe, es wird für Sie funktionieren.

0
Santosh K