Я определил контроллер для принудительной аутентификации с помощью атрибута [Authorize]. Когда время сеанса истекает, запрос все равно передается и выполняется вместо принудительного перенаправления.
Я использую FormsAuthentication для входа и выхода пользователей.
Есть идеи, как это контролировать?
Пример:
[Authorize]
public class ProjectsController : Controller
{
public ActionResult Index()
{
return View();
}
}
В быстром и грязном тесте у меня это сработало. Можете ли вы опубликовать свой файл Web.Config?
мой web.config является стандартным из коробки с простым добавлением: <authentication mode = "Forms"> <forms loginUrl = "~ / Account / Login" /> </authentication>





Для отслеживания сеансов пользователей ASP.NET использует файл cookie ASP.NET_SessionId. Для отслеживания пользователей, прошедших проверку подлинности, ASP.NET использует файл cookie ASPXAUTH (по умолчанию).
Когда время сеанса истекает, cookie ASP.NET_SessionId может больше не отправляться клиентом, но cookie ASPXAUTH все еще отправляется, что может объяснить, почему ваше действие отображается.
Чтобы переопределить значения аутентификации форм по умолчанию, вы можете взглянуть на здесь. Я также предлагаю вам использовать расширение Firebug, чтобы точно узнать, какие файлы cookie отправляются клиентом.
Основываясь на вашем другом вопрос, я предполагаю, что вы вообще не доберетесь до этого контроллера.
Я вхожу в контроллер, но застрял в методе индекса, поэтому я не могу использовать тот же контроллер для других методов, потому что все они отправляются обратно в метод индекса. Пример: такой путь, как / projects / edit / 1, отправит форму в метод ProjectController Index ()
Похоже, у вас либо форма внутри формы на вашей странице, либо неправильная настройка маршрутизации. Можете ли вы опубликовать свои маршруты и источник просмотра на рассматриваемой странице?
Опять же, ASP.NET MVC строится на основе традиционного ASP.NET. Да, есть «встроенная аутентификация» ... это тот же API членства точный, который используется в традиционном ASP.NET.
То есть ... проблема здесь в другом. Может быть, у вас включены скользящие сеансы ... или, может быть, время ожидания больше, чем вы думали и т.
Мне пришлось отключить скользящие сеансы, и, похоже, это решило.
Я собирался задать этот вопрос отдельно, но, раз уж мы здесь, есть ли в ASP.NET MVC встроенная проверка подлинности? Заранее спасибо.