首頁 >後端開發 >C#.Net教程 >asp.net mvc 5改進了基於過濾器的身份驗證

asp.net mvc 5改進了基於過濾器的身份驗證

伊谢尔伦
伊谢尔伦原創
2016-11-24 13:22:001600瀏覽

  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

  OnIAuthenticationFilter的OnAuthentication()方法可以用於執行任何需要的身份驗證。

  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


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:C#的未來計劃下一篇:C#的未來計劃