2009-05-26 3 views
0

Ich habe mein MVC-Projekt auf einem IIS 6-Server veröffentlicht. Wird unter der Anwendung MVCapp ausgeführt. Das Webprojekt erhält die URL: www.domain.com/MVCapp/.MVC leitet autorisierte Benutzer nach Zeitüberschreitung zur falschen URL um

Ich benutze Formulare Login für die Authentifizierung und bekam ein Problem nach der Veröffentlichung.

Die web.config ist wie folgt:

<authentication mode="Forms"> 
<forms name="CTWebCookie" loginUrl="~/Account/Login" defaultUrl="~/Home/Index" slidingExpiration="true" protection="All" timeout="20"/> 
</authentication> 

Zum Beispiel, wenn ich den folgenden Code in einer Aktion:

FormsAuthentication.SignOut(); 
FormsAuthentication.RedirectToLoginPage(); 

..everything große Werke und der Benutzer wird auf www umgeleitet .domain.com/MVCapp/Konto/Anmeldung.

Wenn jedoch die Authentifizierung abgelaufen ist, wird der Benutzer bei der nächsten Seitenanforderung an www.domain.com/Account/Login weitergeleitet. Der Anwendungsstamm wird nicht weitergeleitet und die URL verweist auf den IIS-Stamm.

Wie kann ich die Anwendung die richtige URL nach der Autorisierung Zeitüberschreitung lösen lassen und warum funktioniert es, wenn programmaticly abmeldet nicht nicht, wenn es automatisch abmeldet?

Bitte um Rat.

+0

Können Sie Ihren Account.Login-Code angeben? –

+0

Es tut uns leid, um eine Klarstellung zu bitten, aber Sie sagen, dass Sie nach Ablauf der Autorisierung zum Stamm der Domain (www.mydomain.com) anstelle der Login-Seite (www.mydomain.com/Account/Login) weitergeleitet werden), Recht? Was ist die "richtige" URL, die der Benutzer sehen soll, wenn die Autorisierung abgelaufen ist? – nkirkes

Antwort

0

Nevermind hilft, dachte, es (dummer Fehler), danke für die Hilfe.

Das Problem war ein Javascript auf der Anmeldeseite, die die Seite als target.top bei asynchronen Anfragen neu lud. Die URL im Javascript wurde nicht korrekt aufgelöst.

0

ASP.NET MVC-Projektvorlage verwendet ~/Account/Login. Überprüfen Sie Ihre web.config:

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

AKTUALISIERT:

Gibt es eine App auf dem IIS-Wurzel (www.domain.com/)? Falls ja - versuchen Sie, diese App von IIS zu entfernen. Sie könnten auch diese Zeile in Ihrer Site.Master hinzufügen:

<%= System.Web.Security.FormsAuthentication.LoginUrl %> 

, um zu sehen, ob Ihr loginUrl genau ist/MVCapp/Konto/Anmelden oder irgendetwas anderes

Hope this

+0

Meine Konfigurationseinstellungen wurden nicht veröffentlicht. Das tut mir leid. Ich habe meinen Beitrag jetzt bearbeitet und wie Sie sehen können, benutze ich dieselbe URL wie die Vorlage. –