我只想确保在运行任何代码之前登录。
我找到了User.Identity.IsAuthenticated可以用于布尔值来检查登录。但是,如果我重定向,它仍会运行代码,而且我必须把它放在任何地方?
在ROR中,我们做了一个before_filter选项,在每个控制器的顶部检查,否则不会运行它。
有人可以指导我如何做到这一点。
答案 0 :(得分:4)
您可以使用AuthorizeAttribute
:
使用AuthorizeAttribute标记操作方法时,可以访问该方法 action方法仅限于经过身份验证的用户 授权。如果使用属性标记控制器,则执行所有操作 控制器中的方法受到限制。
Authorize属性允许您指明授权 限制为预定义角色或个人用户。这给了你 高度控制谁有权查看任何页面 该网站。
如果未经授权的用户尝试访问标记为的方法 在Authorize属性中,MVC框架返回401 HTTP状态 码。如果站点配置为使用ASP.NET窗体身份验证, 401状态代码导致浏览器将用户重定向到 登录页面。
例如:
[Authorize]
public ActionResult DoSomething()
{
// ...
}
答案 1 :(得分:2)
在控制器类的顶部,写下: -
[Authorize]
public class StoreManagerController : Controller
答案 2 :(得分:2)
使用授权属性。
[Authorize]
public ActionResult About()
{
return View();
}