如果用户不是管理员并尝试访问某些控制器,则返回"〜/ Error/Unauthorized"页面.以下是我返回错误页面的方法:
if (!Models.Authorization.AdminPageCheck(this.User))
return new RedirectResult("~/Error/Unauthorized");
Run Code Online (Sandbox Code Playgroud)
我可以为ActionResult方法执行此操作,但不能为字符串方法执行此操作,因为它不返回视图.如何保护字符串方法?
最好使用ASP.NET MVC的内置功能,只需注释您的Controller(在类级别,所有操作或操作方法级别)
[Authorize]
Run Code Online (Sandbox Code Playgroud)
如果有人试图调用某个方法并且他们没有登录,则会强制他们使用web.config中配置的方法进行身份验证.
或者,如果你使用
[Authorize(Roles = "AdminRole")]
Run Code Online (Sandbox Code Playgroud)
他们将被迫进行身份验证,如果他们尚未进行身份验证,那么他们将被授予或拒绝基于具有相关角色的访问权限.
这是一个非常常见的要求,幸运的是,ASP.NET MVC团队已经非常全面地处理了它!
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |