В качестве обходного пути вы можете отслеживать, что пользователь уже вышел из системы, и предоставлять различные выходные данные для пользователя.
Хотя верно, что вы хотите, чтобы вышедший из системы пользователь имел ту же страницу, что и пользователь, которыйникогда не входил в систему, тем не менее вы можете использовать ту же страницу, но добавить пробел, который в любом случае игнорируется браузером.
Однако вы можете отследить пользователя, вышедшего из системы, с помощью файла cookie или переменной сеанса, однакоесли после выхода из системы вы сразу же перенаправляете на домашнюю страницу, вы можете использовать MVC TempData, который идеально подходит для этого, поскольку вам нужно только во время перенаправления и даже после обновления страницы (а в классическом ASP.Net вы можете использовать строку запросавместо этого)
РЕДАКТИРОВАТЬ: Я только что понял, что вы основываетесь непосредственно на системе аутентификации, и поэтому может быть гораздо сложнее реализовать что-то нестандартное, как вышеописанное, и поэтому я бы проигнорировал мой ответ, хотя япо-прежнему рекомендуем вам проверить, можете ли вы прикрепить запросстроковый параметр для ваших URL.
Однако, если вы правы в MVC, если я прав, фильтр OutputCache для метода действия должен работать в сочетании с фильтром Authorize даже без getvartbycustomstring, и, возможно, этого не будетпроблема, но в случае, если я ошибаюсь, у вас есть возможность написать в MVC свой собственный.
Также вы можете учитывать тот факт, что все, что отрисовывается с помощью html.renderAction, не является частью кеша по умолчанию, и выпридется обойти это, так что вы можете попробовать это для решения, если ваша вошедшая в систему версия очень близка к вашей не вошедшей в версию.