ASP.NET MVC 3 直到我膝盖中了一箭【6】Forms身份验证
许多 web 应用程序都要求能够限制对某些资源(例如特定页面)的访问,以确保只有经过身份验证的用户才能访问这些资源。asp.net mvc 的默认 web 应用程序项目模板提供了一个控制器以及一些数据模型和视图,您可使用这些为应用程序添加 asp.net 窗体身份验证功能。
1.帐户控制器、模型和视图
在 controllers 文件夹中,accountcontroller 控制器类中包含某些操作方法,这些方法可注册新用户、在应用程序中登录和注销用户以及更改现有用户的密码。在 views 文件夹中,accounts 文件夹中包含支持这些操作的视图。在 models 文件夹中,accountmodels 类包含某些类,这些类定义数据对象、服务以及支持窗体身份验证的验证例程。
在 views 文件夹中,shared 子文件夹包含一个名为 _logonpartial.cshtml 页面,该控件指示用户是否已经登录。如果用户没有登录,则该控件会显示“登录”以及指向 logon 视图的链接。如果用户已经登录,则该控件会显示一条欢迎消息,其中包含用户名以及用户可用以注销的链接。
1 @if(request.isauthenticated) {
2 <text>欢迎使用 <b>@context.user.identity.name</b>!
3 [ @html.actionlink("注销", "logoff", "account") ]</text>
4 }
5 else {
6 @:[ @html.actionlink("登录", "logon", "account") ]
7 }
1 @html.partial("_logonpartial")
2.注册
在 logon 视图中添加一个“注册”链接。因此,每次用户登录时均会显示指向 register 视图的链接。
1 请输入用户名和密码。@html.actionlink("注册", "register")如果您没有帐户。
3.更改密码
在 _logonpartial.cshtml 页面中添加一个“更改密码”链接。因此,每当用户登录之后均会显示指向 changepassword 视图的链接。
1 [ <%: html.actionlink("更改密码", "changepassword", "account") %> ]
4.限制对视图的访问
可以指定应用程序的哪些部分只能由经过身份验证的用户访问。限制对某个视图的访问需使用 authorizeattribute 特性标记创建该视图的操作方法。可以使用 authorizeattribute 特性标记某个控制器自身,以限制对该控制器所有视图的访问。
打开 homecontroller 类,然后找到 about 操作方法,将 authorizeattribute 特性添加到 about 操作方法声明中。
1 //限制对 about 视图的访问。
2 [authorize]
3 public actionresult about()
4 {
5 return view();
6 }
单击“关于”选项卡,将显示 logon 视图,因为现在您必须登录才能查看 about 页面。
摘自 依信依誉
推荐阅读
-
ASP.NET MVC 3 直到我膝盖中了一箭【3】Razor视图引擎
-
ASP.NET MVC 3 直到我膝盖中了一箭【1】概述
-
ASP.NET MVC 3 直到我膝盖中了一箭【2】MVC 项目结构
-
ASP.NET MVC 3 直到我膝盖中了一箭【6】Forms身份验证
-
ASP.NET MVC 3 直到我膝盖中了一箭【5】模型验证
-
ASP.NET MVC 3 直到我膝盖中了一箭【4】小试牛刀
-
ASP.NET MVC 3 直到我膝盖中了一箭【3】Razor视图引擎
-
ASP.NET MVC 3 直到我膝盖中了一箭【6】Forms身份验证
-
ASP.NET MVC 3 直到我膝盖中了一箭【5】模型验证
-
ASP.NET MVC 3 直到我膝盖中了一箭【2】MVC 项目结构