网站建设资讯

NEWS

网站建设资讯

浅谈MVCForm认证

简单的谈一下MVC的Form认证。

公司主营业务:网站制作、网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出华安免费做网站回馈大家。

在做MVC项目时,用户登录认证需要选用Form认证时,我们该怎么做呢?下面我们来简单给大家说一下。

首先说一下步骤

1、用户登录时,如果校验用户名密码通过后,需要调用FormsAuthentication.SetAuthCookie()这个方法。

2、用户退出时,需要调用FormsAuthentication.SignOut();方法

3、在配置文件web.config中,system.web 节点下, 配置

4、校验:HttpContext.User.Identity.IsAuthenticated,如果是false,则没有通过认证,如果是true,则通过了认证

以上这三部,即可完成用户登录的Form认证了。

好了,下面我们来看一下具体的代码。(View中的代码就不贴了,只贴Controller中的代码吧)

1、建立一个用于用户登录用的Model

浅谈MVC Form认证

1     public class LoginViewModel2     {3         [DisplayName("用户名")]4         public string UserName { get; set; }5         [DisplayName("密码")]6         public string Password { get; set; }7     }

浅谈MVC Form认证

2、建立登录用的Controller与页面,其中Controller里面有登录与退出两个Action

浅谈MVC Form认证

 1     public class LoginController : Controller 2     { 3         // GET: Login 4         public ActionResult Index(LoginViewModel loginViewModel) 5         { 6             if (loginViewModel.UserName == "admin" && loginViewModel.Password == "123456") 7             { 8                 FormsAuthentication.SetAuthCookie(loginViewModel.UserName, false); 9                 return RedirectToAction("Index", "Main");10             }11             return View();12         }13 14         //GET: LogOut15         public ActionResult LogOut()16         {17             FormsAuthentication.SignOut();18             return RedirectToAction("Index", "Login");19         }20     }

浅谈MVC Form认证

3、建立一个登录后,用户跳转的页面与Controller

浅谈MVC Form认证

1     public class MainController : BaseController2     {3         // GET: Main4         public ActionResult Index()5         {6             return View();7         }8     }

浅谈MVC Form认证

4、登陆后跳转的页面的Controller是继承的BaseController,那么BaseController是怎么写的呢?

浅谈MVC Form认证

 1     public class BaseController : Controller 2     { 3         protected override void OnActionExecuting(ActionExecutingContext filterContext) 4         { 5             base.OnActionExecuting(filterContext); 6             //登录认证处理 7             if (!filterContext.HttpContext.User.Identity.IsAuthenticated) 8             { 9                 //未登录10                 Response.Redirect("~/Login/Index");11             }12             else13             {14                 //已登录,Action级权限控制处理15                 var controllerName = filterContext.RouteData.Values["controller"].ToString();//控制器名称16                 var actionName = filterContext.RouteData.Values["action"].ToString(); //Action名称17                 //根据controllerName与actionName进行权限检查18                 /*19                  if()20                  { }21                  else22                  { }23              */24             }25         }26     }

浅谈MVC Form认证

这个BaseController很简单,大体的作用就是,方式继承这个BaseController的控制器,当执行其下面的Action时,会进行Form校验,如果校验成功,则……,如果校验不成功则……,

登陆后的页面的Controller都会继承BaseController,这样,就不用在每个Controller中的Action重复的写Form认证的代码了。


分享文章:浅谈MVCForm认证
网站网址:http://njwzjz.com/article/gpoejg.html