ASP.NET MVC:授权后登录页面的自定义参数

时间:2009-05-24 18:04:22

标签: asp.net-mvc authorization custom-action-filter

我想在授权失败后将访问者重定向到添加了参数的登录页面(基于他们正在执行的操作)。

这是我想要做的一个例子:

ASP.NET MVC - CustomeAuthorize filter action using an external website for loggin in the user

但是,由于这是一个自定义过滤器,我不知道如何或如果我可以像通常的授权过滤器那样指定角色。我想要像:

[CustomAuthorization(Roles="Admins")]

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以从AuthorizeAttribute类继承并覆盖OnAuthorize方法,如下所示:

public override void OnAuthorization(AuthorizationContext filterContext)
{
    base.OnAuthorization(filterContext);
    if (!HttpContext.Current.User.IsAuthenticated)
    {
        filterContext.Result = new RedirectResult("target");

    }
}

然后您可以像AuthorizeAttribute一样使用此自定义过滤器。

答案 1 :(得分:0)

您是否尝试过下载ASP.Net MVC源代码并查看AuthorizeAttribute的代码(在AutorizeAttribute.cs中)?

从现有的AuthorizeAttribute派生您的CustomAutorization可能是有意义的 - 检查一下,看看您是否可以使用所需的功能。

答案 2 :(得分:0)

如何在自定义Authorization类中使用Request.Form。毕竟这只是一个POST电话?不要让它比实际更难。