asp.net-mvc – 授权失败时将用户重定向到特定视图?
发布时间:2020-12-16 06:56:38 所属栏目:asp.Net 来源:网络整理
导读:我有以下代码: [AcceptVerbs(HttpVerbs.Post),Authorize(Roles = RoleKeys.Administrators)] public ActionResult Edit(int id,FormCollection collection) { User user = userRepository.GetUser(id); try { this.UpdateModel(user); userRepository.Save(
我有以下代码:
[AcceptVerbs(HttpVerbs.Post),Authorize(Roles = RoleKeys.Administrators)] public ActionResult Edit(int id,FormCollection collection) { User user = userRepository.GetUser(id); try { this.UpdateModel(user); userRepository.Save(); return this.RedirectToAction("Details",new { id = user.UserId }); } catch { this.ModelState.AddModelErrors(user.GetRuleViolations()); return View(new UserFormViewModel(user)); } } 如果当前登录的用户不是管理员角色,则会将其踢回登录屏幕.用户已登录,他们只是未授权执行请求的操作. 有没有办法让它们重定向到特定的视图,例如,AccessDenied? 解决方法
您可以定义自己的属性:
public class MyAuthorizeAttribute: AuthorizeAttribute { public override void OnAuthorization( AuthorizationContext filterContext ) { base.OnAuthorization(filterContext); if (filterContext.Result is HttpUnauthorizedResult) { filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary { { "controller","Login" },{ "action","AccessDenied" } }); } } } 并使用 [AcceptVerbs(HttpVerbs.Post),MyAuthorize(Roles = RoleKeys.Administrators)] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Azure Apps EasyAuth声称使用.NET Core
- asp.net – 授权问题 – 匿名用户无法访问.jpeg或.css
- asp.net-mvc-5 – MVC AttributeRoute似乎忽略了RoutePrefi
- asp.net – 使用ItemDataBound我只获得每隔一行.为什么?
- asp.net – 在后面的代码中通过jquery添加列表框项的问题
- 详解ASP.NET Core 中的框架级依赖注入
- ASP.NET web.config文件是否失控?
- asp.net – 使用谷歌地图api的ASP .NET
- ASP.NET MVC,Node.JS.他们可以互动吗?
- ASP.NET Web API中除IQueryable之外的OData查询和类型
推荐文章
站长推荐
热点阅读