asp.net-mvc – asp.net mvc授权使用角色
我创建一个asp.net mvc应用程序,有用户的概念。每个用户都能够编辑自己的配置文件。例如:
> PersonID = 1可以通过转到http://localhost/person/edit/1来编辑他们的个人资料 没有什么特别令人兴奋的… 然而,我已经遇到一些麻烦与授权方案。在系统中只有两个角色,“管理员”和“DefaultUser”,但未来可能会有更多。 我无法使用常规的Authorize属性指定授权,因为两个用户都处于相同的角色(即“DefaultUser”)。 所以,如果我指定授权过滤器像这样: [Authorize(Roles = "DefaultUser")] 那么就没有效果。 PersonID = 1可以进入和编辑自己的配置文件(因为他们应该能够),但他们也可以只是将URL更改为http://localhost/person/edit/2,他们有完全访问权限编辑PersonID = 2的配置文件(他们不应该去做)。 这是否意味着我必须创建自己的授权过滤器,检查用户在请求“拥有”的操作是否允许他们访问?也就是说,如果当前登录的人正在请求参数= 1的编辑操作,那么我需要进行自定义检查,以确保当前登录的人是PersonID = 1,如果是,请授权他们,如果没有,拒绝访问? 感觉我在这里缺少一些明显的东西,所以任何指导将不胜感激。 解决方法
也许你可以组织控制器操作,使得URL更像是
http://localhost/person/editme,它显示当前登录的用户的编辑表单。这样,用户就无法通过黑客攻击URL来编辑别人。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .net – 数据绑定到LINQ到实体时的重复行
- asp.net – 为什么我的项目引用不被Visual Studio中的Web部
- asp.net-mvc-3 – MvcContrib网格和复选框
- asp.net – 调用SMO服务器和数据库后清理
- asp.net – 什么是部分回发?
- asp.net-mvc – RazorPDF将pdf文件保存到MVC4中的服务器目录
- asp.net-mvc-4 – “你没有权限查看这个目录或页面.”在IIS
- ASP.NET应用程序在3个物理层上
- 缺少版本和工具:.NET Core,Core Tools,dotnet Core CLI,
- .net – 如何动态清除用户控件中的所有控件?
- asp.net-mvc – 我可以在发布后编辑Asp.net Mvc
- asp.net – SignalR和浏览器连接限制
- 初识ABP vNext(4):vue用户登录&菜单权限
- ASP.NET / VB.NET:Dropdownlist SelectedIndexC
- asp.net – ASP MVC用户配置文件
- asp.net-mvc-4 – Asp.Net MVC 4 bundle不提供se
- asp.net – Http Handler正在iis express中工作,
- asp.net-mvc-3 – 如何将MVC3中的HTML和C#代码与
- asp.net – App_Data / ASPNETDB.MDF到Sql Serve
- asp.net – 通过Ajax Post – MVC3更新模型更改视