ASP.NET MVC:自定义参数授权后登录页面
-
05-09-2019 - |
题
我想重定向访问者到登录页面与添加的参数(基于他们正在执行的动作)授权失败之后。
这是我想做什么的示例:
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调用?不要使它更难比它实际上是。
不隶属于 StackOverflow