iT邦幫忙

0

C# .NET Core 請教USER系統的實現方式

Ks 2019-07-12 12:02:431456 瀏覽

小弟目前在兩家公司上過班,

第一家公司是使用Webform來自己撰寫註冊登入系統,然後登入成功用Session來存取,感覺上有點粗糙~

第二家公司是用一套用戶管理軟體,然後登入是SSO模式,之後開發的不同系統都是使用用JWT Token openconnectId方式來進行登入。

再加上以前還有接過一些外包網站,我自己是使用.NET提供的功能的Authorize Identity來實現。

由於之前兩家公司的系統都不是自己完成的,再加上還有使用第三方,

所以想請教各位在業界上的各位大大,

還有用過哪一些技術來實現USER系統呢?

/images/emoticon/emoticon06.gif

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
小魚
iT邦大師 1 級 ‧ 2019-07-12 13:05:43

Authorize基本上用的是Cookie,
Cookie比較不粗糙嗎?

看更多先前的回應...收起先前的回應...
Homura iT邦高手 1 級 ‧ 2019-07-12 13:25:29 檢舉

他是說用法上吧....
Authorize畢竟整合得很好

小魚 iT邦大師 1 級 ‧ 2019-07-12 14:11:20 檢舉

這讓我想到 香草JS

Ks iT邦新手 3 級 ‧ 2019-07-12 14:42:09 檢舉

感謝答覆,
是的~我比較想知道現在業界上還有什麼樣的作法。

因為第一家公司是做內部IT開發人員,這方面的技術上覺得就比較簡單,
就類似這樣Session["user"] = value;就當login用了
/images/emoticon/emoticon16.gif

然後第二家是科技公司,每次提交代碼都開始需要Code Review了,
剛開始的時候就不斷的被打槍,以前很多不好的寫法都不斷的被糾正過來
/images/emoticon/emoticon06.gif

加上USER系統這方面確實經驗不足,以後也有可能會碰到
先來瞭解大大們的作法,提升一下自己的水準XD

Ks iT邦新手 3 級 ‧ 2019-07-12 14:43:35 檢舉

的確.NET的Authorize很不錯~
但是我擔心未來如果遇到公司不要使用這個作法的時候,
我該如何設計?
/images/emoticon/emoticon04.gif

dragonH iT邦超人 5 級 ‧ 2019-07-12 15:24:57 檢舉

登入不喜歡用 session 的話

可以試試 JWT

小魚 iT邦大師 1 級 ‧ 2019-07-12 16:11:14 檢舉

看起來JWT是在Server跟Client之間傳資料,
我反而覺得Session是最安全的.
不知道有沒有這方面的專家出來說幾句...

froce iT邦大師 1 級 ‧ 2019-07-12 16:12:18 檢舉

你可以去看一下一些框架的作法。
像我常用的Django也是用session去存,不過他是這樣:
cookies存sessionid,伺服器上對照sessionid可以得到session data和expire date,然後session data其實是加密後的user的一些資訊,譬如user的id。

session應該會比JWT安全,不過由於session是不能跨伺服器的,所以才會用JWT來做跨伺服器的認證。

然後純用cookies...你要談安全?別鬧了。

小魚 iT邦大師 1 級 ‧ 2019-07-12 16:12:27 檢舉

只是.Net的Session有時候會莫名其妙消失...

froce iT邦大師 1 級 ‧ 2019-07-12 16:25:49 檢舉

.Net的Session是自己做一個session services。
aspnet_state.exe這隻。
可能遇到網路擁擠或是出什麼狀況,突然漏掉什麼的。
Django的是存在資料庫,只是你要的話可以改存在redis裡。

小魚 iT邦大師 1 級 ‧ 2019-07-12 16:37:52 檢舉

原來如此,
總之我後來根據某些人的建議,
自己寫個資料表來存Session記錄了.

froce iT邦大師 1 級 ‧ 2019-07-12 17:33:43 檢舉

然後公司內部其實比較常用的還有先去核對AD的...

fillano iT邦超人 1 級 ‧ 2019-07-12 17:46:11 檢舉

session state要存sql server的話,.net framework就有提供工具:aspnet_regsql.exe

froce iT邦大師 1 級 ‧ 2019-07-12 19:30:27 檢舉
1
mqingqing123
iT邦新手 5 級 ‧ 2019-07-13 19:12:54

基本上是使用自己制作的User系统。
不管是微软.NET提供的Profile Provider还是 .NET Core提供的Authorize Identity 都太过于复杂。
我自己写的软件 www.dotnetcms.org 采用用户登录后,就直接存储在Cookie里,然后配合web.config里 进行身份验证。

我要發表回答

立即登入回答