2009-05-24 122 views
0

我想在授权失败后将访问者重定向到带有添加参数(基于他们正在执行的操作)的登录页面。ASP.NET MVC:授权后登录页面的自定义参数

这是我想要做什么的例子:

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

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

[CustomAuthorization(Roles="Admins")] 

谢谢!

回答

1

你可以从AuthorizeAttribute类继承并重写OnAuthorize方法是这样的:

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

    } 
} 

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

0

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

从现有的AuthorizeAttribute派生CustomAutorization可能是有意义的 - 请检查它并查看是否可以添加所需的功能。

0

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