如果在MVC 3中未经过身份验证,如何轻松重定向?

bla*_*iet 19 asp.net asp.net-mvc-3

我是ASP.NET的新手,我正在尝试找到一种方法,可以轻松地将未经身份验证的用户从站点上的任何页面重定向到登录页面.如果有另一个选项,我宁愿不在每个HTTP GET函数中放入以下代码.

if (!Request.IsAuthenticated)
{
     return RedirectToAction("LogOn", "Account");
}
Run Code Online (Sandbox Code Playgroud)

Kun*_*vič 32

使用[Authorize]属性http://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute.aspx标记您的控制器

请参阅您的web.config,默认情况下您应该打开表单身份验证 authentication mode="Forms" http://msdn.microsoft.com/en-us/library/eeyk640h.aspx

另请参阅ASP.NET MVC授权这个问题

如果您想要自定义授权行为,请在此处查看ASP.NET MVC中的自定义授权


小智 13

您可以将该[Authorize]属性放在需要进行身份验证的每个操作上.

此外,请确保在Web.Config中定义此部分:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

  • 完全正确,只是为了澄清 - 这个配置部分应该放在“system.web”中。 (2认同)