我正在将我的Web应用程序转换为MVC应用程序。我认为它会从中受益,但我是MVC的新手。我希望我的所有控制器都是基本控制器固有的,我想要做的第一件事就是将User重定向到Login视图(如果它们未经过身份验证)。已编写的方法基本上是查找Cookie,如果找不到,它会在登录屏幕上执行Response.Redirect()。我想将此方法移动到BaseController,但我不肯定最好的方法是什么。那么本质上我应该调用什么BaseController事件来在加载页面之前检查身份验证?
由于
答案 0 :(得分:1)
处理此问题的MVC方法是使用AuthorizationAttribute装饰控制器操作。
使用AuthorizeAttribute标记操作方法时,对该操作方法的访问仅限于经过身份验证和授权的用户。如果使用属性标记控制器,则控制器中的所有操作方法都受到限制。
“授权”属性允许您指明授权仅限于预定义角色或单个用户。这使您可以高度控制谁有权查看网站上的任何页面。
如果未经授权的用户尝试访问使用Authorize属性标记的方法,则MVC框架将返回401 HTTP状态代码。如果站点配置为使用ASP.NET表单身份验证,则401状态代码会导致浏览器将用户重定向到登录页面。