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

asp.net-MVC – ASP.NET MVC:我可以说[授权角色=“管理员”]在

发布时间:2020-12-16 07:15:06 所属栏目:asp.Net 来源:网络整理
导读:我开始使用默认项目的AccountController,但我已将其扩展/更改为无法识别.但是,与原来一样,我有一个LogOn和LogOff动作. 显然,每个人都必须能够访问LogOn操作.但是,由于我已向此控制器添加了许多其他操作(以创建和编辑用户),因此我希望99%的操作都需要管理员
我开始使用默认项目的AccountController,但我已将其扩展/更改为无法识别.但是,与原来一样,我有一个LogOn和LogOff动作.

显然,每个人都必须能够访问LogOn操作.但是,由于我已向此控制器添加了许多其他操作(以创建和编辑用户),因此我希望99%的操作都需要管理员角色成员资格.

我可以使用[授权角色=“管理员”]来装饰我的所有行为,但是我会忘记一个冒险.我宁愿通过使用该属性修饰控制器类本身来使其安全,然后放宽对我的LogOn方法的要求.我能这样做吗?

(因为,我可以在不创建自定义类的情况下开箱即用,等等.我不想让事情变得复杂得多.)

解决方法

要在Action级别覆盖控制器Attribute,您必须创建自定义Attribute,然后将自定义属性的Order属性设置为比控制器AuthorizeAttribute更高的值.我相信这两个属性仍然会执行,除非您的自定义属性生成一个立即生效的结果,如重定向.

有关更多信息,请参见Overriding controller AuthorizeAttribute for just one action.

所以我相信你的情况你只需要在Actions上添加AuthorizeAttribute而不是在控制器级别.但是,您可以创建单元测试以确保所有操作(除了LogOn)都具有AuthorizeAttribute

(编辑:李大同)

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

    推荐文章
      热点阅读