假设这是我的 SampleController 操作方法
public ActionResult AdminView()
{
return View()
}
如果希望在登录用户属于管理员角色的情况下调用此控制器方法,否则应阻止此方法调用,并且用户应获得一些自定义的未经授权的访问错误页面。
在我的 asp .net mvc Web 应用程序中,当用户登录时,我将用户角色作为字符串存储在会话中。每当需要验证用户角色时,我都会将会话中存储的值与常量“ADMIN_ROLE”进行比较。但是我正在编写那段代码来检查几乎每个控制器操作方法中的用户角色,然后如果用户角色受限于控制器操作方法,则为用户返回适当的视图或未经授权的访问页面视图。
我用谷歌搜索并读到我们可以使用这样的东西。
[Authorize(Roles="admin")]
public ActionResult AdminView()
{
return View()
}
但我不确定 Authorize 和 Roles 关键字是如何工作的。放置 Roles = "Admin" 时如何帮助检查我存储在会话中的用户角色字符串,或者我如何将用户重定向到未经授权的页面,以防角色与为操作方法标记的角色不匹配。