ASP.NET MVC 5改進了基於過濾器的身份驗證
ASP.NET MVC 5包含在最近釋出的Visual Studio 2013開發者預覽版中,它使開發人員可以應用身份驗證過濾器,它們提供了使用各種第三方供應商或自定義的身份驗證提供程式進行使用者身份驗證的能力。不過,這些過濾器要在呼叫授權過濾器之前應用。
為了建立身份驗證過濾器,開發人員需要新建一個C#ASP.NET工程,並且從列出的工程型別中選擇MVC。來自Kunz,Leigh&Associates公司的高階軟體開發工程師Eric Vogel已經測試了身份驗證過濾器的用法。他建立了一個自定義過濾器,如果使用者未通過身份驗證,就將其重定向回登入頁面。
Eric建立了一個CustomAttributes目錄和一個新類CustomeAttribute,該類繼承了
ActionFilterAttribute和IAuthenticationFilter: public class BasicAuthAttribute: ActionFilterAttribute,IAuthenticationFilter
介面IAuthenticationFilter的OnAuthentication()方法可以用於執行任何需要的身份驗證,而OnAuthenticationChallenge方法基於已驗證使用者的身份限制其訪問。
OnAuthenticationChallenge方法接收AuthenticationChallengeContext引數,其實現程式碼如下所示:
public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext) { var user = filterContext.HttpContext.User; if (user == null || !user.Identity.IsAuthenticated) { filterContext.Result = new HttpUnauthorizedResult(); } }
讀者可以從Eric的博文獲得完整的原始碼。BasicAuthAttribute類很容易測試,開啟HomeController類檔案,並新增下面的程式碼即可:
using VSMMvc5AuthFilterDemo.CustomAttributes;
最後,將自定義屬性應用到HomeController類,如下所示:
[BasicAuthAttribute] public class HomeController : Controller
相關文章
- Asp.Net MVC 身份驗證-FormsASP.NETMVCORM
- asp.net mvc中的使用者登入驗證過濾器ASP.NETMVC過濾器
- ASP.Net MVC過濾器ASP.NETMVC過濾器
- asp.net core MVC 過濾器之ActionFilter過濾器(二)ASP.NETMVC過濾器Filter
- ASP.NET MVC動作過濾器ASP.NETMVC過濾器
- 直播軟體搭建,姓名,身份證input驗證過濾
- 影片直播app原始碼,姓名,身份證input驗證過濾APP原始碼
- Apache基於MySQL的身份驗證(轉)ApacheMySql
- ASP.Net MVC開發基礎學習筆記(4):校驗、AJAX與過濾器ASP.NETMVC筆記過濾器
- 【ASP.NET Core】MVC過濾器:執行流程ASP.NETMVC過濾器
- 【ASP.NET Core】MVC過濾器:常見用法ASP.NETMVC過濾器
- ASP.NET MVC筆記 之 Action 過濾器ASP.NETMVC筆記過濾器
- node實現基於token的身份驗證
- 實時驗證碼技術可改進生物識別身份驗證
- WebService通過SOAP頭進行身份驗證Web
- asp.net 角色身份驗證的使用ASP.NET
- 理解ASP.NET Core - 基於Cookie的身份認證(Authentication)ASP.NETCookie
- ASP.Net WebService 身份驗證 FormsASP.NETWebORM
- 也談Asp.net 中的身份驗證ASP.NET
- 理解ASP.NET Core - 基於JwtBearer的身份認證(Authentication)ASP.NETJWT
- Asp.net中基於Forms驗證的角色驗證授權ASP.NETORM
- ASP.NET MVC驗證碼演示ASP.NETMVC
- Asp.net MVC中表單驗證ASP.NETMVC
- PHP 對資料進行驗證和過濾PHP
- 關於Java Mail的身份驗證!JavaAI
- .net core 登入全域性驗證過濾器過濾器
- ASP.NET Core 過濾器ASP.NET過濾器
- AJAX基於ASP.NET MVCASP.NETMVC
- ASP.NET MVC結合jQuery外掛進行資料驗證ASP.NETMVCjQuery
- 自定義基於XML的驗證器XML
- MVC驗證01-基礎、遠端驗證MVC
- [ASP.NET MVC 小牛之路]16 - Model 驗證ASP.NETMVC
- (精華)2020年7月21日 ASP.NET Core 模型驗證過濾器ASP.NET模型過濾器
- ASP.NET Web API 2系列(四):基於JWT的token身份認證方案ASP.NETWebAPIJWT
- Oracle的身份驗證Oracle
- 【Dflying Chen】在ASP.NET Atlas中結合Membership進行身份驗證ASP.NET
- javascript 驗證身份證JavaScript
- 【仙山】flutter版谷歌身份驗證器Flutter谷歌