Добавление в коллекцию ViewData[] из расширения AuthorizeAttribute

StackOverflow https://stackoverflow.com/questions/2045200

Вопрос

Я написал класс расширения для настройки моего атрибута 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 в атрибуте пользовательского фильтра

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top