我有自定义授权属性:
using System; using System.Web.Mvc; using System.Web.Routing; [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method,Inherited = true,AllowMultiple = true)] public class MyAuthorizeAttribute : AuthorizeAttribute { protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { if (!filterContext.HttpContext.Request.IsAuthenticated) { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Login",action = "Login" })); } else { base.HandleUnauthorizedRequest(filterContext); } } }
…我用来装饰某些控制器:
[MyAuthorizeAttribute(Roles = "Superman,Batman,Spiderman")] public class SuperHeroController : Controller { // .... }
任何人都可以解释如何修改授权代码,以便如果授权失败,登录URL包括ReturnUrl(当前控制器/方法的URL)?
这基本上是试图模仿Web表单ReturnUrl逻辑,但是以一种聪明的方式,我不必手动使用字符串作为URL.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。