Jag har publicerat mitt MVC projekt till en IIS 6 server. Projektets URL blir, låt säga, www.domain.com/MVCapp/ , där MVCapp är applikationen på IIS'en.Formsauthentication problem med MVC
Min web.config ser ut som följande:
<authentication mode="Forms">
<forms name="CTWebCookie" loginUrl="~/Account/Login" defaultUrl="~/Home/Index" slidingExpiration="true" protection="All" timeout="20"/>
</authentication>
Jag har en "logga ut" länk som fungerar bra. Den pekar på en action som kör följande kod:
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
Användaren blir "redirectad" till www.domain.com/MVCapp/Account/Login och allting är frid och fröjd.
Problemet uppstår när forms autensieringen gör en timeout. Då blir nästa page request mot servern "redirectad" till fel URL. Dvs. www.domain.com/Account/Login (applikations-/mappnamnet) saknas.
Hur kommer detta sig?
Jag får samma beteende om jag skapar relativa länkar utan att använda Url.Content() eller Url.Actions() på mina sidor. Dvs att länkarna inte pekar relativt på mappen där applikationen körs utan direkt mot IIS roten. Mitt logga ut problem kanske har med detta att göra?