HttpContext.SignInAsync和SigninManger.SignInAsync的區別


網上關於.netcore驗證登錄代碼經常會看到兩個方法:HttpContext.SignInAsync 和 SigninManger.SignInAsync。新手往往搞不明白這兩者的區別(我也是新手)。

后來查了不少英文資料才大體搞明白。

SigninManger.SignInAsync是來自微軟.netcore已實現的含后台數據庫實體的完整認證系統(ASP.NET Core Identity)。SigninManger只是其中一個登錄管理類,還有角色管理類(RoleManager)和用戶管理類(UserManager)。

生成的實體數據庫表有(.netcore3.1):AspNetRoleClaims,AspNetUserClaims,AspNetUserLogins,AspNetUserRoles,AspNetUserTokens,AspNetRoles,AspNetUsers 

數據庫實體類有:IdentityRole,IdentityRoleClaim<string>,IdentityUser,IdentityUserClaim<string>,IdentityUserLogin<string>,IdentityUserRole<string>,IdentityUserToken<string>,IdentityRoleClaim<string>,IdentityUserClaim<string>,IdentityUserLogin<string>,

IdentityUserRole<string>,IdentityUserToken<string>

所以說這是個完整的登錄認證系統,從后台數據庫表到登錄、注銷,角色創建、刪除,用戶創建、刪除,微軟全幫你實現了,你只需在創建項目時勾選上認證就可以了。什么也不做就搭建了一個登錄認證系統,而且功能完善。

但項目的需求是千差萬別的,微軟這個通用的認證登錄系統並不能滿足所有的需求,有時需要建立自己的登錄認證系統,后台ORM不想用微軟件EF,也不想用哪些內置的表。這時就可以用HttpContext.SignInAsync來實現登錄。

其實SigninManger.SignInAsync最終也是調用HttpContext.SignInAsync來實現的。

注銷也類似:HttpContext.SignOutAsync SignInManager.SignOutAsync

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM