MVC после тайм-аута перенаправляет авторизованных пользователей на неправильный URL - PullRequest
0 голосов
/ 26 мая 2009

Я опубликовал свой проект MVC на сервере IIS 6. Запуск под приложением MVCapp. Веб-проект получает URL: www.domain.com/MVCapp/.

Я использую формы входа в систему для проверки подлинности, и после публикации у меня возникла проблема.

Файл web.config выглядит следующим образом:

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

Например, если я запускаю следующий код в действии:

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

.. все отлично работает, и пользователь перенаправляется на www.domain.com/MVCapp/Account/Login.

Однако, когда время аутентификации истекло - при запросе следующей страницы пользователь будет перенаправлен на www.domain.com/Account/Login. Корень приложения не маршрутизируется, а URL-адрес указывает на корень IIS.

Как заставить приложение разрешить правильный URL-адрес после истечения времени ожидания авторизации и почему оно работает, когда программный выход из системы выполняется не при автоматическом выходе?

Пожалуйста, совет.

Ответы [ 2 ]

0 голосов
/ 27 мая 2009

Неважно, разобрался (глупая ошибка), хотя спасибо за помощь.

Проблема заключалась в том, что на странице входа в систему был JavaScript, который перезагружал страницу как target.top в случае асинхронных запросов. URL в javascript не был правильно разрешен.

0 голосов
/ 26 мая 2009

Шаблон проекта ASP.NET MVC использует ~/Account/Login. Проверьте ваш web.config:

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

ОБНОВЛЕНИЕ:

Есть ли какое-либо приложение в корне IIS (www.domain.com/)? Если это так - попробуйте удалить это приложение из IIS. Вы также можете добавить эту строку в свой Site.Master:

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

чтобы узнать, является ли ваш loginUrl именно / MVCapp / Account / Login или что-то еще

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...