Я думаю, что есть ошибка в ASP.NET MVC 3 Beta. Эта проблема не появляется в предыдущих выпусках ASP.NET MVC.
Если кто-то захочет воспроизвести эту ошибку, он должен выполнить следующее:
1 . Загрузите mvc framevork .
2 . Создание нового Веб-приложение ASP.NET MVC 3
3 .Applay Authorize
атрибут About
действие в HomeController
[Authorize]
public ActionResult About()
{
return View();
}
4 . Запустите приложение и вызовите О действии , нажав на вкладку О . Вы получите ошибку сервера, потому что приложение пытается перенаправить Вас на такой URL:
http://localhost:[port_num]/Account/Login?ReturnUrl=%2fHome%2fAbout
Там явно нет Логин просмотр. Есть LogOn просмотр. URL-адрес для входа в систему определяется в нетронутом файле web.config:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
Но приложение не отражает этого. Кто-нибудь знает, что происходит?
UPDATE:
Я был прав, есть ошибка в MVC 3 Beta . Из известных проблем :
"Существует известная проблема, из-за которой проверка подлинности с помощью форм всегда перенаправляет неаутентифицированных пользователей в / Account / Login, игнорируя параметр проверки подлинности с помощью форм, используемый в Web.config. Временное решение: добавить следующий параметр приложения."
<add key="autoFormsAuthentication" value="false" />
ОБНОВЛЕНИЕ 2:
Александр Прокофьев заметил, что ASP.NET 3 RTM ищет другую настройку. Поэтому вам нужна эта строка:
<add key="loginUrl" value="~/LogOn" />