Redirect from Controller Initialize not working

У меня есть переопределение для контроллера, который проверяет, существуют ли определенные данные сессии. Эти данные необходимы для правильной работы репозитория, поэтому если они не существуют, то после проверки пользователь должен выйти из системы.

protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
    base.Initialize(requestContext);
    if (Session["CompanyID"] != null)
    {
        repo.CompanyID = (long)Session["CompanyID"];
    }
    else
    {
        RedirectToAction("LogOff", "Account");
    }
}

Мой код выглядит следующим образом, но даже когда вызывается RedirectToAction, контроллер все равно открывает действие по умолчанию и пользователь не выходит из системы. Можете ли вы порекомендовать, как решить эту проблему?

Я использую данные сессии таким образом, потому что это первое место, где я могу получить к ним доступ, и здесь я могу проверить, существуют ли эти конкретные данные. Они записываются, когда пользователь входит в систему.

Эти данные являются частью User в базе данных. Я создал пользовательский провайдер членства и ролей. Есть ли способ как-то добавить эти данные в "User" типа MembershipUser, чтобы к ним можно было обращаться в конструкторе, как к имени пользователя?

10
задан adiga 30 December 2014 в 11:51
поделиться