asp.net-mvc – 仅当不使用角色时,如何重定向[Authorize]到login
发布时间:2020-12-16 00:39:16 所属栏目:asp.Net 来源:网络整理
导读:我想[授权]重定向到loginUrl,除非我也使用角色,例如[Authorize(Roles =“Admin”)]。在这种情况下,我想简单地显示一个说明用户没有授权的页面。 我该怎么办? 解决方法 这是从我修改的AuthorizeAttribute实现的代码;我把它命名为SecurityAttribute。我唯
我想[授权]重定向到loginUrl,除非我也使用角色,例如[Authorize(Roles =“Admin”)]。在这种情况下,我想简单地显示一个说明用户没有授权的页面。
我该怎么办? 解决方法
这是从我修改的AuthorizeAttribute实现的代码;我把它命名为SecurityAttribute。我唯一改变的是OnAuthorization方法,我添加了一个额外的字符串属性为Url重定向到一个未经授权的页面:
// Set default Unauthorized Page Url here private string _notifyUrl = "/Error/Unauthorized"; public string NotifyUrl { get { return _notifyUrl; } set { _notifyUrl = value; } } public override void OnAuthorization(AuthorizationContext filterContext) { if (filterContext == null) { throw new ArgumentNullException("filterContext"); } if (AuthorizeCore(filterContext.HttpContext)) { HttpCachePolicyBase cachePolicy = filterContext.HttpContext.Response.Cache; cachePolicy.SetProxyMaxAge(new TimeSpan(0)); cachePolicy.AddValidationCallback(CacheValidateHandler,null); } /// This code added to support custom Unauthorized pages. else if (filterContext.HttpContext.User.Identity.IsAuthenticated) { if (NotifyUrl != null) filterContext.Result = new RedirectResult(NotifyUrl); else // Redirect to Login page. HandleUnauthorizedRequest(filterContext); } /// End of additional code else { // Redirect to Login page. HandleUnauthorizedRequest(filterContext); } } 您以与原始AuthorizeAttribute相同的方式调用它,除了有一个额外的属性可以覆盖未经授权的页面网址: // Use custom Unauthorized page: [Security (Roles="Admin,User",NotifyUrl="/UnauthorizedPage")] // Use default Unauthorized page: [Security (Roles="Admin,User")] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在使用ASP.NET会话时是否可以强制请求并发?
- asp.net-mvc – 无法加载文件或程序集“System.Web.Provide
- entity-framework – 数据读取器与指定的模型不兼容
- 为什么Asp.net web项目在url中有垃圾值?
- asp.net-core – 在VS 2015 RC中,编译保存不适用于ASP.NET
- asp.net-mvc-3 – MVC3 razor Webgrid分页和排序超过2000条
- asp.net-mvc-4 – 如何将用户没有正确的角色重定向到Not Pe
- asp.net-mvc – 我可以创建一个带有MVC3助手的选择列表
- .net – HttpHandler在IIS 7中不起作用
- .net – HttpContext.Request和Request之间的区别
推荐文章
站长推荐
- asp.net-mvc – ValidationMessage仅适用于model
- asp.net – 许多用户的许多表?
- asp.net-mvc – 如何在asp.net mvc 4中实现社交登
- asp.net – bin目录中是否存在.pdb文件会对性能产
- CORS支持PUT和DELETE与ASP.NET Web API
- 如何将ASP.NET Repeater控件绑定到IList?
- asp.net – 服务器标签格式不正确,ASP Repeater
- asp.net-mvc-3 – NHibernate.ObjectNotFoundExc
- asp.net – Application_Start在工作站上工作正常
- ASP.NET Web API内存中测试中的内部服务器错误
热点阅读