asp.net-mvc – 在自定义控制器工厂中进行通用授权的良好做法?
发布时间:2020-12-16 09:59:53 所属栏目:asp.Net 来源:网络整理
导读:我的控制器共享客户端ID.路线: clients/{clientId}/{controller}/{action}/{id} 示例网址: clients/1/orders/details/1clients/2/children/indexclients/2/cars/create 您需要为客户提供适当的授权.我不想在每个控制器中执行相同的客户端授权.我提出了在自
我的控制器共享客户端ID.路线:
clients/{clientId}/{controller}/{action}/{id} 示例网址: clients/1/orders/details/1 clients/2/children/index clients/2/cars/create 您需要为客户提供适当的授权.我不想在每个控制器中执行相同的客户端授权.我提出了在自定义控制器工厂中进行自动化的想法,如下所示: public class CustomControllerFactory : DefaultControllerFactory { private readonly IAuthService _authService; public CustomControllerFactory(IAuthService authService) { _authService = authService; } protected override IController GetControllerInstance( RequestContext requestContext,Type controllerType) { var doAuth = requestContext.RouteData.Values.ContainsKey("clientId"); if (doAuth) { var principal = requestContext.HttpContext.User; var clientId = long.Parse( requestContext.RouteData.Values["clientId"].ToString()); var authorized = _authService.Client(principal,clientId); if (!authorized) { return new AuthController(); } } return base.GetControllerInstance(requestContext,controllerType); } } 你认为这是一个好习惯吗?为什么? 解决方法
不,我不认为这是一个好习惯.自定义
AuthorizeAttribute似乎更适合处理授权而不是控制器工厂.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – Application_Error已调用,但没有异常
- asp.net-mvc – 覆盖控制器AuthorizeAttribute只有一个操作
- asp.net-mvc-3 – Facebook身份验证和奇怪的重定向行为
- 转:[WebServices]介绍
- asp.net – 如何自动执行功能/集成测试和数据库回滚
- asp.net – GridView编辑按钮需要2次点击
- asp.net – 将HTML表导出到Excel
- asp.net-mvc – MVC – 索引视图溢出
- ASP.Net Gridview,如何激活基于ID的编辑模式(DataKey)
- asp.net-mvc – 使用一组复杂数据类型调用UpdateModel会重置
推荐文章
站长推荐
- ASP.NET内联编码:变量名不会被值替换
- asp.net – 如何在Repeater中为LinkBut??ton做As
- asp.net – 菜单控件生成的js导致Web窗体中的Sys
- asp.net-mvc-3 – ASP.NET MVC 3.0 Razor,从任何
- .net – 如何将变量传递给SqlDataSource的Select
- asp.net-mvc – 如何使基于列表的编辑器模板正确
- asp.net-mvc – PRG模式是否与AJAX表单帖子不兼容
- 生成随机颜色的问题 – asp.net和c#
- asp.net-mvc – 如何在ASP.NET MVC 4中定义catch
- asp.net – 将下拉列表绑定到gridview中的editIt
热点阅读