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中的使用者登入驗證過濾器ASP.NETMVC過濾器
- ASP.Net MVC過濾器ASP.NETMVC過濾器
- 直播軟體搭建,姓名,身份證input驗證過濾
- 【ASP.NET Core】MVC過濾器:執行流程ASP.NETMVC過濾器
- 【ASP.NET Core】MVC過濾器:常見用法ASP.NETMVC過濾器
- 影片直播app原始碼,姓名,身份證input驗證過濾APP原始碼
- node實現基於token的身份驗證
- 實時驗證碼技術可改進生物識別身份驗證
- 理解ASP.NET Core - 基於JwtBearer的身份認證(Authentication)ASP.NETJWT
- 理解ASP.NET Core - 基於Cookie的身份認證(Authentication)ASP.NETCookie
- (精華)2020年7月21日 ASP.NET Core 模型驗證過濾器ASP.NET模型過濾器
- PHP 對資料進行驗證和過濾PHP
- 2020.10.22-MVC5過濾器(許可權認證)與checkbox傳值的相關問題MVC過濾器
- .net core 登入全域性驗證過濾器過濾器
- ASP.Net Core 5.0 MVC中AOP思想的體現(五種過濾器)並結合專案案例說明過濾器的用法ASP.NETMVC過濾器
- ASP.NET MVC中使用FluentValidation驗證實體ASP.NETMVC
- ASP.NET Web API 2系列(四):基於JWT的token身份認證方案ASP.NETWebAPIJWT
- Identity Server 4 - Hybrid Flow - MVC客戶端身份驗證IDEServerMVC客戶端
- flowable 繞過idm自帶的身份驗證
- 基於gRPC、API閘道器和身份驗證的Go微服務原始碼專案RPCAPIGo微服務原始碼
- MVC Remote 伺服器驗證MVCREM伺服器
- 【asp.net core 系列】13 Identity 身份驗證入門ASP.NETIDE
- 理解ASP.NET Core - 過濾器(Filters)ASP.NET過濾器Filter
- Asp.net core 過濾器的簡單使用ASP.NET過濾器
- gRPC(七)進階:自定義身份驗證RPC
- 【仙山】flutter版谷歌身份驗證器Flutter谷歌
- win10 的windows身份驗證怎麼開啟_win10怎麼進行身份驗證Win10Windows
- Asp.Net WEBAPI 增加身份驗證 (OAUTH 2.0方式)ASP.NETWebAPIOAuth
- 《數字身份驗證指南》草案中提議禁用基於簡訊的雙因子認證
- 5.scrapy過濾器過濾器
- 身份證實名認證介面的價格一般是多少呢?基於PHP身份核驗介面PHP
- Welcome to YARP - 5.身份驗證和授權
- 使用 OAuth 2.0 進行 Kafka 身份驗證 - strimziOAuthKafka
- .Net MVC中定義全域性過濾器及在Action中排除全域性過濾器MVC過濾器
- mvc原始碼解讀(11)-mvc四大過濾器之AuthorizationFilterMVC原始碼過濾器Filter
- mvc原始碼解讀(12)-mvc四大過濾器之ActionFilterMVC原始碼過濾器Filter
- mvc原始碼解讀(13)-MVC四大過濾器之ResultFilterMVC原始碼過濾器Filter
- mvc原始碼解讀(14)-mvc四大過濾器之ExceptionFilterMVC原始碼過濾器ExceptionFilter
- 身份證驗證工具類