加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 18:52:48 所属栏目:asp.Net 来源:网络整理
导读:我创建一个asp.net mvc应用程序,有用户的概念。每个用户都能够编辑自己的配置文件。例如: PersonID = 1可以通过转到http://localhost/person/edit/1来编辑他们的个人资料 PersonID = 2可以通过转到http://localhost/person/edit/2来编辑他们的个人资料 没
我创建一个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来编辑别人。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读