中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

ASP.NET MVC 5改進(jìn)了基于過濾器的身份驗(yàn)證

2018-07-20    來源:編程學(xué)習(xí)網(wǎng)

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用

  ASP.NET MVC 5包含在最近發(fā)布的Visual Studio 2013開發(fā)者預(yù)覽版中,它使開發(fā)人員可以應(yīng)用身份驗(yàn)證過濾器,它們提供了使用各種第三方供應(yīng)商或自定義的身份驗(yàn)證提供程序進(jìn)行用戶身份驗(yàn)證的能力。不過,這些過濾器要在調(diào)用授權(quán)過濾器之前應(yīng)用。

  為了創(chuàng)建身份驗(yàn)證過濾器,開發(fā)人員需要新建一個(gè)C#ASP.NET工程,并且從列出的工程類型中選擇MVC。來自Kunz,Leigh&Associates公司的高級(jí)軟件開發(fā)工程師Eric Vogel已經(jīng)測(cè)試了身份驗(yàn)證過濾器的用法。他創(chuàng)建了一個(gè)自定義過濾器,如果用戶未通過身份驗(yàn)證,就將其重定向回登錄頁面。

  Eric創(chuàng)建了一個(gè)CustomAttributes目錄和一個(gè)新類CustomeAttribute,該類繼承了

ActionFilterAttribute和IAuthenticationFilter:
public class BasicAuthAttribute: ActionFilterAttribute,IAuthenticationFilter

  接口IAuthenticationFilter的OnAuthentication()方法可以用于執(zhí)行任何需要的身份驗(yàn)證,而OnAuthenticationChallenge方法基于已驗(yàn)證用戶的身份限制其訪問。

  OnAuthenticationChallenge方法接收AuthenticationChallengeContext參數(shù),其實(shí)現(xiàn)代碼如下所示:

public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext)
{
    var user = filterContext.HttpContext.User;
    if (user == null || !user.Identity.IsAuthenticated)
    {
        filterContext.Result = new HttpUnauthorizedResult();
    }
}

  讀者可以從Eric的博文獲得完整的源代碼。BasicAuthAttribute類很容易測(cè)試,打開HomeController類文件,并添加下面的代碼即可:

using VSMMvc5AuthFilterDemo.CustomAttributes;

  最后,將自定義屬性應(yīng)用到HomeController類,如下所示:

[BasicAuthAttribute]
   public class HomeController : Controller

  英文原文:Improved Authentication with Filters in ASP.NET MVC 5

標(biāo)簽: 代碼 開發(fā)者

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:檢測(cè)到在集成的托管管道模式下不適用的ASP.NET設(shè)置的解決方法

下一篇:C# 的三種序列化方法