前言
很多時(shí)候其實(shí)我們并不需要asp.net core自帶的那么復(fù)雜的用戶系統(tǒng),基于角色,各種概念,還得用EF Core,而且在web應(yīng)用中都是把信息存儲(chǔ)到cookie中進(jìn)行通訊(我不喜歡放cookie中,因?yàn)橛写挝以趍ac系統(tǒng)中的safari瀏覽器運(yùn)行web應(yīng)用時(shí),碰到跨域cookie設(shè)不上,非要使用個(gè)很特殊的方法,記得是iframe,挺麻煩的,所以我還是喜歡放自定義header中), 用了以后感覺(jué)被微軟給綁架了。不過(guò)這完全是個(gè)人喜好,大家完全可以按自己喜歡的來(lái),我這里提供了另外一條路,大家可以多一種選擇。
我這邊是利用asp.net core的依賴(lài)注入,定義了一套屬于自己系統(tǒng)的用戶認(rèn)證與授權(quán),大家可以參考我這個(gè)來(lái)定義自己的,也不局限于用戶系統(tǒng)。
面向切面編程(AOP)
在我看來(lái),Middleware與Filter都是asp.net core中的切面,我們可以把認(rèn)證與授權(quán)放到這兩塊地方。我個(gè)人比較喜歡把認(rèn)證放到Middleware,可以提早把那些不合法的攻擊攔截返回。
依賴(lài)注入(DI)
依賴(lài)注入有3種生命周期
1. 在同一個(gè)請(qǐng)求發(fā)起到結(jié)束。(services.AddScoped)
2. 每次注入的時(shí)候都是新建。(services.AddTransient)