Microsoft最近發布了ASP.NET Identity 2,該版本支持雙重認證、帳號鎖定以及防偽印章功能,還增強了用戶帳號和索引。此外新版本還包含一個改進的密碼驗證器并修復了一些bug。
借助于雙重認證,開發者能夠使用定制的提供程序保護用戶帳號,而不是使用傳統的SMS和基于email的驗證。例如,開發者能夠編寫自己的自定義提供程序,例如QR代碼生成器,并使用手機上的身份驗證應用程序驗證它們。
新版本的ASP.NET Identity 2.0能夠保護用戶遠離暴力破解的困擾,如果用戶輸入了錯誤的密碼或者雙重代碼,那么相關的用戶帳號會被鎖定一段時間。作為一個開發人員,你可以配置無效嘗試的次數和時間間隔,另外你也可以通過一個選項為某些用戶帳號關閉該功能。
新引入的防偽印章功能讓你能夠在密碼或者相關的社會登錄帳號發生改變的時候從應用程序中注銷。你可以按照官方MSDN博客上的介紹通過注冊一個CookieAuthenticationProvider在Startup.Auth.cs中進行配置。
最新版本提供了一個擴展鉤子,借助于該鉤子你能指定用戶表和角色表的主鍵,對于那些將UserId存儲為GUID或者Int的應用程序而言這是非常有用的。
在新版本發布之前,我們無法通過UserManager刪除用戶,這一問題已經被解決,你能夠使用DeleteAsyn()函數刪除用戶。
var result = await UserManager.DeleteAsync(user);
你可以使用Factory實現從OWIN上下文中獲取到一個UserManager的實例。這一模式與我們從OWIN上下文中獲取AuthenticationManager 從而進行登錄和登出的模式類似。為了使用這一功能,我們需要在StartupAuth.cs類中添加下面的代碼:
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create); HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
DbContextFactory中間件每一個請求都會返回一個ApplicationDbContext實例,你可以在應用程序中使用它,同時可以在StartupAuth.cs中使用下面的代碼進行配置:
app.CreatePerOwinContext(ApplicationDbContext.Create);
Microsoft使用新的IndexAttribute為Username添加了唯一的索引;此外還增強了密碼驗證器,1.0提供了一個僅能驗證最小長度的基礎驗證器,而在新版本中我們能夠通過配置對密碼的復雜性進行更多的控制。該版本還提供了NuGet 包以及示例ASP.NET MVC應用程序,并根據社區的反饋修復了一些bug。
與ASP.NET Identity 2 RTM一起發布的還有Entity Framework 6.1,后者的特性包括工具整合、IndexAttribute和公共映射API,此外它還支持.ToString、String.Concat、enum HasFlags,能夠通過App/Web.config文件配置攔截器。
來自于Microsoft的軟件工程師Pranav Rastogi 在他的博客中概括了應用程序從ASP.NET Identity 1.0遷移到2.0、從2.0 beta 1遷移到2所需要的步驟。除了上面提到的特性之外,該版本還包含一些其他的特性,例如帳號確認、密碼重置、UsersStore和RolesStore上的IQueryable,這些功能最初都是在2013年12月份發布的預覽版中添加的。
查看英文原文:ASP.NET Identity 2 Adds Two-factor Authentication, Account Lockout, Security Stamp and Bug Fixes
文章列表