2014-03-12 15 views
6

Ich habe eine asp.net C# MVC-Website. Es verwendet SimpleAuthentication und Formularauthentifizierung. Alles funktioniert einwandfrei und erfordert, dass sich Benutzer einloggen, um auf die Seiten zu gelangen. Ich habe jedoch einen Controller namens "ReportsController". Wann immer Sie zu den URLs der Aktionen innerhalb dieses Controllers gehen, erscheint immer "Authentifizierung erforderlich" im Browserfenster.Website fragt nach "Authentifizierung erforderlich" auf einem MVC-Controller, aber nicht andere

Es ist nur für diesen Controller und nicht für andere. Die URL lautet "www.domain.com/reports". Diese URL funktioniert einwandfrei, wenn ich von IIS und von meinem Entwicklungsserver, aber nicht von meinem Live-Server aus laufe. Dies führt IIS7 aus.

Ich habe meine web.config überprüft und es ist definitiv auf Formularauthentifizierung und nicht Windows festgelegt.

Jeder hat irgendwelche Ideen, warum URLs, die mit "/ Reports" beginnen, nicht funktionieren würden. Ich vermute, dass es etwas Spezifisches für den Server ist, wie eine IIS-Einstellung oder web.config-Änderung, aber ich kann nicht herausfinden, was das sein würde.

namespace ProjectName.Controllers 
{ 
    public class ReportsController : Controller 
    { 
     public ActionResult Index() 
     { 
      throw new SystemException("here"); 

      return View(); 
     } 
    } 
} 

Web.config:

<authentication mode="Forms"> 
    <forms loginUrl="~/" timeout="2880" /> 
</authentication> 
+0

Hat Ihr Berichtscontroller benutzerdefinierte Attribute auf dem Controller oder Aktionen, die möglicherweise einen Filter anwenden, um die Sicherheit zu implementieren? – DaveRead

+0

Ich benutzte [Authorize] für die Aktion, aber ich habe versucht, das für den Moment zu kommentieren und keine Freude zu bekommen. – user1616625

+0

Ich habe den Code zu der Frage hinzugefügt, damit Sie sehen können. Nichts besonderes an der Steuerung oder Aktion. – user1616625

Antwort

14

So stellt sich heraus, dass der SQL Server Reporting Services auf dem Server ausgeführt wurde. Dies übernahm die Kontrolle über die URL "/ Reports" auf allen Websites auf diesem Server.

Ich verwende keine SQL Server-Berichte, daher ging ich zu "Reporting Services Configuration Manager" auf dem Server und entfernte die IP-Adresse und den Port, der überwacht wurde. Sie können auch die verwendete URL ändern, wenn Sie diese noch verwenden müssen.

+0

Es wird mich aus zwei Gründen nicht erlauben, meine eigene Antwort für zwei Tage zu akzeptieren, aber das hat es gelöst. – user1616625

+0

Das gleiche Problem hier - ich wusste nicht, dass Reports anderswo lief. Es ist immer irgendwas ' – Dave

+0

Wirklich froh, dass ich das gefunden habe! Ich kratzte mich tagelang an diesem Kopf! – bloodfire1004