2

我正在将我的 Web 应用程序转换为 MVC 应用程序。我认为它会从中受益,但我是 MVC 的新手。我希望我的所有控制器都是基本控制器固有的,如果用户未通过身份验证,我要做的第一件事是将用户重定向到登录视图。已经编写的方法基本上会查找 Cookie,如果没有找到,它会对登录屏幕执行 Response.Redirect()。我想将此方法移至 BaseController 但我不确定最好的方法是什么。所以本质上我应该在加载页面之前调用什么 BaseController 事件来检查身份验证?

谢谢

4

1 回答 1

1

处理此问题的 MVC 方法是使用AuthorizationAttribute装饰控制器操作。

当您使用 AuthorizeAttribute 标记操作方法时,对该操作方法的访问仅限于经过身份验证和授权的用户。如果使用该属性标记控制器,则控制器中的所有操作方法都会受到限制。

Authorize 属性允许您指示授权仅限于预定义的角色或单个用户。这使您可以高度控制谁有权查看网站上的任何页面。

如果未经授权的用户尝试访问标有 Authorize 属性的方法,MVC 框架将返回 401 HTTP 状态代码。如果站点配置为使用 ASP.NET 表单身份验证,则 401 状态代码会导致浏览器将用户重定向到登录页面。

于 2012-07-18T18:35:22.513 回答