asp.net – 使用自定义AuthorizeAttribute生成返回Url
发布时间:2020-12-16 07:34:32 所属栏目:asp.Net 来源:网络整理
导读:我有自定义授权属性: using System;using System.Web.Mvc;using System.Web.Routing;[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method,Inherited = true,AllowMultiple = true)]public class MyAuthorizeAttribute : AuthorizeAttribute{
我有自定义授权属性:
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. 解决方法
终于想通了,虽然有人可能会建议一个更好的方法……
filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary( new { controller = "Login",action = "Login",returnUrl = filterContext.HttpContext.Request.Url.GetComponents(UriComponents.PathAndQuery,UriFormat.SafeUnescaped) })); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net-mvc-3 – 在ASP.NET MVC3中的自定义授权
- asp.net – 如何在ModalPopupExtender前显示Cale
- ASP.NET中web.config文件的替代方法
- asp.net-mvc – 如果ASP.NET MVC中的用户匿名,则
- 使用Classic ASP在XML文档中附加子项
- asp.net – 异常日志记录HttpModule不会从ASP .N
- asp.net – 当DataList为空时需要显示消息
- asp.net – 当passwordFormat = Encrypted和decr
- asp.net-mvc – 如何动态地将值从提交按钮传递给
- asp.net-mvc – asp.net mvc5 webapi2,如何通过r
热点阅读