ASP.NET MVC和ASP.NET成员资格提供程序 - 全局处理身份验证

时间:2009-10-01 09:16:09

标签: asp.net asp.net-mvc authentication asp.net-membership

我正在使用ASP.NET MVC构建一个小应用程序,我正在使用ASP.NET成员资格提供程序来处理用户。将其连接到基本MVC模板的登录页面。

检查有效身份验证的最佳做法是什么?如果用户未在我的所有页面上进行身份验证,我基本上想要重定向到首页或登录页面。

-anders

3 个答案:

答案 0 :(得分:3)

我们这样做的方式,早在MVC Preview 4左右的时代,就是创建一个新的“BaseController”类,然后每个其他控制器继承这个类。此BaseController类使用Authorize属性

[Authorize]
public class BaseController : Controller
{
...
}

我们的其他控制器继承了这一个

public class HomeController : BaseController
{
...
}

现在几个月没有与MVC合作,所以我不能说这是否仍然适用,所以请谨慎行事......

答案 1 :(得分:1)

您应该使用[授权]注释要进行身份验证的任何操作,并可选择使用一些必需的角色:

[Authorize()]
public ActionResult Index() {
  ...
  return View();
}

如果您愿意,这包括您的主页操作。未经授权的尝试将始终重定向到登录页面。

答案 2 :(得分:1)

这可能稍微复杂一些,但另一种方法可能是在管道中放置一个自定义HTTP模块,以便在用户未经过身份验证时重定向请求。