Добавление в коллекцию ViewData [] из расширения AuthorizeAttribute - PullRequest
2 голосов
/ 12 января 2010

Я написал класс расширения для настройки моего 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 ["Message"] над вызовом, чтобы изменить представление без успеха.

1 Ответ

0 голосов
/ 12 января 2010

Вы пробовали;

filterContext.Result = new RedirectResult("Home/Index");

Я не знаю, как добавить ViewData, но это, по крайней мере, приведет вас к не авторизованному контроллеру.

Я буду продолжать искать код, который нужно добавить для просмотра данных в то же время или до тех пор, пока кто-то не отправит их.

редактировать

Это может помочь;

Изменение значений ActionExecutingContext в атрибуте пользовательского фильтра

...