WEB前端开发社区 昨天使用Visual Studio的2015年开发ASP.NET的Web API2专案时,有好几种专案范本可以选择,你可以从「空白」专案范本开始,也可以从「MVC」专案范本开始(记得勾选网页API核心参考),也可以直接从「网页API」专案范本开始,由于专案范本通常夹杂大量的范例程式,很多时候我们并无法在第一时间得知每段程式码与设定档的细节,以至于在后续开发的过程发生许多问题。 本篇文章将带大家了解如何成功在ASP.NET的Web API2专案正确启用ASP.NET的表单验证机制(FormsAuthenticaion)。 这边我写了一个非常简单的表单验证程式码,程式码如下: 先建立一个 LoginViewModel
再建立一个 UsersController
基本上,上述这两个档案就可以完成最基本的登入(PostLogin),登出(注销)等基本身分验证功能,搭配[授权]动作过滤器(过滤行动)还可以对取得登入者名称(GetProfile)功能进行基本授权验证,因此这是一份完成的表单验证实作,非常容易上手。 以下我将介绍在不同的专案范本下,才能让这段程式码正常运作:
这部分只要在专案根目录下的Web.config中加入<身份验证模式=“表格”> </认证>即可: 2.使用「MVC」专案范本开始,外加网络API核心参考(如下图示): 在MVC专案范本下,预设会停用所有表单验证功能,如果要启用表单验证的话,则要修改的Web.config两个地方:
由于ASP.NET MVC专案预设移除了FormsAuthentication模组,如果你没有意识到这个模组预设被移除的话,会导致你的代码怎样写都能执行,登入也能跑,也不会发生例外,但登入者会永远是「尚未登入」的鬼打墙状态! 3.使用「网页API」专案范本开始,外加网络API核心参考(如下图示): 在网页API专案范本下,预设也会停用所有表单验证功能,但要改的地方又比MVC专案多一些,地雷实在很多啊! 如果要启用表单验证的话,除了要修改的Web.config两个地方(跟MVC专案范本一样),还要修改App_Start\ WebApiConfig.cs档案: 修改的Web.config两个地方:
修改App_Start\ WebApiConfig.cs两行程式码,将其注解起来
预设的ASP.NET的Web API2专案范本中,由于被设定成仅使用承载权杖验证,因此这两行必须注解起来,表单验证才能正常执行。 不过有一点要注意,如果你将这两行注解起来的话,的ASP.NET Web API就不能走专案范本预设的的OAuth验证,专案内的的AccountController也将无法正常使用! 本文所有程式码,包含所有修改程式码的版本纪录,都已经整理到 GitHub上了哦,大家可以点击“阅读原文”下载,再透过Git的工具(TortoiseGit,SourceTree,...)即可查看每一个版本的变化历程。 声明: 本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。 |
|