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

asp.net-mvc – 有没有办法为MVC控制器中的每个动作设置[Authori

发布时间:2020-12-16 06:30:10 所属栏目:asp.Net 来源:网络整理
导读:我有以下内容: [Authorize(Roles = "admin")] 我正在为我的控制器上的每个动作设置它.但是有一些方法我可以全局为控制器做这个吗? 解决方法 [Authorize(Roles = "admin")]public class AdminController : Controller{} 该属性也适用于控制器. 您甚至可以创
我有以下内容:

[Authorize(Roles = "admin")]

我正在为我的控制器上的每个动作设置它.但是有一些方法我可以全局为控制器做这个吗?

解决方法

[Authorize(Roles = "admin")]
public class AdminController : Controller
{
}

该属性也适用于控制器.

您甚至可以创建一个基本控制器并在其上设置属性(因此在所有派生控制器上获得相同的授权)

[Authorize(Roles = "user")]
public class BaseController : Controller
{
}

public class NewsController : BaseController 
{
}

public class ForumController : BaseController 
{
    [HttpPost,Authorize(Roles="admin")]
    public ActionResult Delete(int id)
    {
    }
}

更新

第一个问题:您可以将[HandleError]放在基本控制器中,以便在所有控制器中获取MVC的错误处理.我刚写了一篇描述它的blog entry.

第二个问题:是的.在操作上添加最具体的[Authorize]属性. (例如,在基本控制器中授权“users”,在Edit操作上授予“admins”).

(编辑:李大同)

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

    推荐文章
      热点阅读