Я пытался сделать это:
<body>
<div id="Page">
<div id="TopBar">
<div id="TopBarLogo">
<img src="@Url.Content("~/Content/images/Weblogo.png")" />
</div>
<div>
@{ Html.RenderAction("MenuPartial", "MenuPartial"); }
</div>
</div>
<div class="Content">
@if (SessionWrapper.IsAuthenticated)
{
@RenderBody()
}
else
{
Html.RenderPartial("AccessDeniedPartial");
}
</div>
</div>
</body>
</html>
Но ofc это не разрешено, так как мне нужно иметь @RenderBody (), иначе возникает исключение.
Проблема в том, что это решение было бы таким аккуратным, что я все еще хочу визуализировать верхнюю часть страницы, но я хотел бы переопределить содержимое, если пользователь не вошел в систему.
Единственное другое решение, которое я могу придумать, - это выполнить проверку в контроллере и вернуть другое представление. Проблема в том, что мне придется повторять этот код на каждом контроллере, что меня огорчает.
Есть ли способ глобально переопределить содержимое, подобное приведенному выше, без перенаправления пользователя на другой URL-адрес? Если есть, не могли бы вы дать мне толчок в правильном направлении. Кажется, я немного застрял в своем нынешнем мышлении.
Я не использую классы безопасности Microsoft по умолчанию (FormsAuthentication), и я не могу в этом случае.
Спасибо.