我想在授权失败后将访问者重定向到带有添加参数的登录页面(基于他们正在执行的操作)。
这是我想做的一个例子:
ASP.NET MVC - CustomeAuthorize 过滤器操作使用外部网站登录用户
但是,由于这是一个自定义过滤器,我不知道如何或是否可以像通常的授权过滤器一样指定角色。我想要类似的东西:
[CustomAuthorization(Roles="Admins")]
谢谢!
我想在授权失败后将访问者重定向到带有添加参数的登录页面(基于他们正在执行的操作)。
这是我想做的一个例子:
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 可能是有意义的 - 检查它,看看您是否可以添加所需的功能。
在您的自定义 Authorization 类中仅使用 Request.Form 怎么样。毕竟这只是一个 POST 调用?不要让它变得比实际更难。