技术开发 频道

ASP.NET MVC3:用密码保护限制view访问

  【IT168技术】假设有这么一个场景:你想阻止用户访问你网站的特定页面,除非用户已经注册并且使用了用户名和密码登陆。

  解决方案:使用一个AccountController,AccountModels 和 几个MVC View,配合ASP.NET的 AuthorizeAttribute 特性,FormsAuthentication和Membership creation/validation。

  讨论

  微软的MVC团队已经对账户controller做了很多的改进。它已经被更新用于Form验证,连同Membership 类去创建新的用户,验证存在的用户,创建cookie去检测用户登入的状态。

  在MVC 3中 已经提供了几种默认的应用程序模板。如下图。

  ①Empty,一个空的模板将创建一些MVC需要的文件结构。

  ②Internet Application,一个因特网应用程序的默认的模板将要包含一些预配置:basic layout,一个AccountController包含了多个action(注册,登陆,修改密码等)。

  ③Intranet Application,内部网应用程序。他和第二个模板类似。但是他没有使用Membership 类,而是使用了windows身份验证。

  对于大多数网站,我们默认应该使用第二个模板。如果你现在还没有这样做,你可以现在创建一个MVC 3 Internet Application。

  这将生成AccountController, AccountModels 和几个Account的Views(用户注册,登陆,修改密码)。

  为了组织用户访问特定的view,MVC 提供了一个AuthorizeAttribute 特性。打开AccountController你可以看到如下代码:

  // GET: /Account/ChangePassword
        [Authorize]
        public ActionResult ChangePassword()
        {
            return View();        }

   它的意图是只有登陆用户才可以访问密码修改页面。

0
相关文章