ASP.NET MVC5网站开发之登录、验证和注销管理员篇(2)

ASP.NET MVC5网站开发之登录、验证和注销管理员篇

添加红框内代码。StyleControl.css具体内容这里省略了。

其次,添加对Ninesky.Core的引用。

Ninesky.Web->引用【右键】->添加引用.。在引用管理器中选择 项目->解决方案->Ninesky.Core.

处理完这两项内容就继续具体内容了:

1、管理员身份验证类AdminAuthorizeAttribute

AdminAuthorizeAttribute继承自AuthorizeAttribute,重写AuthorizeCore方法,通过Session["AdminID"]来判断管理员是否已经登录,重写HandleUnauthorizedRequest方法来处理未登录时的页面跳转。

using System.Web; using System.Web.Mvc; namespace Ninesky.Web.Areas.Control { /// <summary> /// 管理员身份验证类 /// </summary> public class AdminAuthorizeAttribute : AuthorizeAttribute { /// <summary> /// 重写自定义授权检查 /// </summary> /// <returns></returns> protected override bool AuthorizeCore(HttpContextBase httpContext) { if (httpContext.Session["AdminID"] == null) return false; else return true; } /// <summary> /// 重写未授权的 HTTP 请求处理 /// </summary> protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { filterContext.Result = new RedirectResult("~/Control/Admin/Login"); } } }

Ninesky.Web->Areas->Control【右键】->添加->类,输入控制器名称HomeController。

为HomeController添加[AdminAuthorize]

ASP.NET MVC5网站开发之登录、验证和注销管理员篇

2、管理员控制器Ninesky.Web->Areas->Control->Controllers【右键】->添加->控制器。选择 MVC5 控制器 – 空, 输入控制器名称Admin。

在控制器中引用Ninesky.Core、Ninesky.Core.General和Ninesky.Web.Areas.Control.Models命名空间。

添加私有变量private AdministratorManager adminManager = new AdministratorManager();

为AdminController添加[AdminAuthorize]

3.1 管理员登录

3.1.1 登录视图模型

Ninesky.Web->Areas->Control->Models【右键】->添加->类,输入类名LoginViewModel。

namespace Ninesky.Web.Areas.Control.Models { /// <summary> /// 登录模型 /// </summary> public class LoginViewModel { /// <summary> /// 帐号 /// </summary> [Required(ErrorMessage = "必须输入{0}")] [StringLength(30, MinimumLength = 4, ErrorMessage = "{0}长度为{2}-{1}个字符")] [Display(Name = "帐号")] public string Accounts { get; set; } /// <summary> /// 密码 /// </summary> [DataType(DataType.Password)] [Required(ErrorMessage = "必须输入{0}")] [StringLength(20,MinimumLength =6, ErrorMessage = "{0}长度{2}-{1}个字符")] [Display(Name = "密码")] public string Password { get; set; } } }

3.1.2 登录方法

在AdminController中添加Login()方法

/// <summary> /// 登录 /// </summary> /// <returns></returns> [AllowAnonymous] public ActionResult Login() { return View(); }

3.1.3 登录视图

在Login()方法上点【右键】->添加视图

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjyjpj.html