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

这是我想做什么的示例:

ASP.NET MVC - 使用用于在用户洛外部网站CustomeAuthorize滤波器动作

然而,由于这是一个自定义过滤器,我不知道我怎样,或者如果可以指定像往常授权过滤器的角色。我想是这样的:

[CustomAuthorization(Roles="Admins")]

谢谢!

有帮助吗?

解决方案

您可以从AuthorizeAttribute类继承和覆盖方法OnAuthorize这样的:

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

    }
}

然后就可以使用这个自定义过滤器就像AuthorizeAttribute。

其他提示

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

这可能是有意义的派生从现有AuthorizeAttribute您CustomAutorization - 检查出来,看看你可以在你需要的functionallity钉

了解您的自定义授权使用类的Request.Form只是什么。这只是毕竟是一个POST调用?不要使它更难比它实际上是。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top