Добавление в коллекцию ViewData[] из расширения AuthorizeAttribute
-
20-09-2019 - |
Вопрос
Я написал класс расширения для настройки моего атрибута AuthorizeAttribute для моих методов действий, и я хотел бы иметь возможность вводить сообщения в мое представление при выполнении определенного условия.Я использую приведенный ниже код для загрузки общего представления, когда пользователь не авторизован, но это не добавляет мое сообщение в мою коллекцию ViewData.Есть какие-нибудь идеи?
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
if (IsNotAuthorized)
{
filterContext.Result = new ViewResult { ViewName = "NotAuthorized" };
filterContext.Controller.ViewData["Message"] = "Go Away";
}
}
Я также попытался установить элемент коллекции ViewData ["Сообщение"] над вызовом для изменения представления, но безуспешно.
Решение
Вы пробовали;
filterContext.Result = new RedirectResult("Home/Index");
Я не знаю, как добавить ViewData, но это, по крайней мере, приведет вас к неавторизованному контроллеру.
Я буду продолжать искать код для добавления к просмотру данных в то же время или до тех пор, пока кто-нибудь не опубликует его.
Редактировать
Это может помочь;
Изменение значений ActionExecutingContext в атрибуте пользовательского фильтра