asp.net-mvc – asp.net mvc授权使用角色

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – asp.net mvc授权使用角色前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建一个asp.net mvc应用程序,有用户的概念。每个用户都能够编辑自己的配置文件。例如:

> PersonID = 1可以通过转到http://localhost/person/edit/1来编辑他们的个人资料
> PersonID = 2可以通过转到http://localhost/person/edit/2来编辑他们的个人资料

没有什么特别令人兴奋的…

然而,我已经遇到一些麻烦与授权方案。在系统中只有两个角色,“管理员”和“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来编辑别人。
原文链接:https://www.f2er.com/aspnet/254060.html

猜你在找的asp.Net相关文章