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

伊谢尔伦
發布: 2016-11-24 13:22:00
原創
1562 人瀏覽過

  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
登入後複製


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!