在我目前正在处理的项目中,我有三个角色:管理员,超级用户和用户。
管理员可以删除用户,删除评论等,但超级用户也必须能够删除评论。所以我构建了一个AdminController
并使用Admin授权它。超级用户必须能够访问一种方法,因此我为超级用户授权但不会工作。
[Authorize(Roles = "Admin")]
public class AdminController : Controller
{
(... here be only admin methods ...)
[HttpGet]
[Authorize(Roles = "Super-user")]
public ActionResult Delete()
{
//deletes a comment
return View();
}
(... here be only admin methods ...)
}
我查看了覆盖Authorize
属性,但我试图找到一个不需要的解决方案,对于如何为超级用户授权一种方法有什么想法?
作为超级用户的管理员必须能够访问方法Delete()
。
谢谢!
答案 0 :(得分:1)
我认为@Felix Cen指出这应该适用于控制器
String
然后在方法级别指定
myUtterance = AVSpeechUtterance(string: sender.currentTitle ?? "")
或者,您可以使用this问题
中指出的拒绝属性[Authorize(Roles = "Admin, Super-user")]
这里的另一个问题(我认为我有点像this具体答案)
我个人对此的看法是拆分控制器。只是创造 另一个控制器对于您不需要身份验证的操作。
或者你可以:
[Authorize(Roles = "Super-user")]
通过这种方式,您可以在需要时进行身份验证,只需通过派生即可 来自特定的班级。