在ASP.NET MVC 3中实现访问控制

时间:2011-07-24 16:46:49

标签: asp.net asp.net-mvc-3 roles

我正在ASP.NET MVC 3中编写基于角色的应用程序。显然,根据用户所处的角色,将取决于他们可以访问的页面或功能。我不确定最好的地方,或者在MVC应用程序中实现它的方法。任何有关某些资源的信息或要点都将受到赞赏。

提前致谢。

2 个答案:

答案 0 :(得分:1)

Membership Provider内置于.NET中,可以在MVC3中使用。我链接的帖子概述了如何使用.NET框架附带的默认实现,可以create your own,但我建议先熟悉默认实现。

答案 1 :(得分:1)

如果您想实施自己的会员制,那么您可以按照以下步骤操作:

  1. 以安全请求的方式放置一个HttpModule(一个继承自IHttpModule的类)(要为其定义访问控制的请求)
  2. 在该模块中,创建处理程序AuthenticateRequest事件
  3. 在该处理程序中,检查身份验证Cookie 的请求。此cookie可以是您的,也可以使用FormsAuthentication类为您创建,加密和解密cookie。
  4. 如果存在cookie,则加载用户的角色,并将其作为键/值对存储在HttpContext.Current.Items中。这样,您就可以在任何地方使用它。
  5. 如果没有,则将用户重定向到登录页面。可以从设置或web.config
  6. 中检索登录页面的地址
  7. 在登录页面中,获取用户的登录信息,包括用户名和密码,然后创建Authentication Cookie并将其发送给客户。