вместо того, чтобы поместить HttpContext.Request.IsAuthenticated
в уровень контроллера, вы должны поместить его в базовый класс контроллера, который будет унаследован во всех ваших контроллерах с помощью метода переопределения метода OnActionExecuting ().
В базе вашего контроллерау вас должно быть
public class BaseController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext ctx) {
base.OnActionExecuting(ctx);
ViewData["IsAuthenticated"] = HttpContext.Request.IsAuthenticated;
}
}
и весь ваш контроллер должен наследовать класс BaseController
public class ApplicationController : BaseController
, теперь вы должны получить ViewData["IsAuthenticated"]
на своей главной странице.
Редактировать
По указанной вами ссылке и касающейся того, что вы сделали, ваш ApplicationController
является Контроллером страниц, а не Базовым контроллером.В этом примере ApplicationController
является базовым контроллером, который наследуется HomeController
, но вы сделали то, что вы помещаете метод Action в базовый контроллер, который является ApplicationController
, поэтому ваш метод индекса действия не будет вызыватьсякогда вы вызываете любую страницу (страница индекса), которая не из ApplicationController.