【问题标题】:Adding to ViewData[] collection from AuthorizeAttribute Extension从 AuthorizeAttribute 扩展添加到 ViewData[] 集合
【发布时间】:2010-01-11 21:50:30
【问题描述】:

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

【问题讨论】:

    标签: asp.net-mvc viewdata authorize-attribute


    【解决方案1】:

    你试过了吗;

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

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

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

    编辑

    这可能会有所帮助;

    Changing ActionExecutingContext values in Custom Filter Attribute

    【讨论】:

    • hmm ..您链接的解决方案似乎是为了别的。还有人有其他想法吗?
    猜你喜欢
    • 2012-06-22
    • 2018-02-22
    • 2020-06-07
    • 2011-10-15
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多