2

我编写了一个扩展类来为我的操作方法自定义我的 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"] 集合项以更改视图但没有成功。

4

1 回答 1

0

你有没有尝试过;

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

我不知道如何添加 ViewData 但这至少会让你进入未授权的控制器。

在此期间或直到有人发布它之前,我将继续寻找添加代码以查看数据。

编辑

这可能会有所帮助;

更改自定义过滤器属性中的 ActionExecutingContext 值

于 2010-01-11T22:03:08.477 回答