日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

全新的membership框架Asp.net Identity(1)——.Net membership的历史

發布時間:2025/3/8 asp.net 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 全新的membership框架Asp.net Identity(1)——.Net membership的历史 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Asp.net上,微軟的membershop框架經歷了Asp.net membership到Asp.net simple membership,再到現在的Asp.net Identity. 每一次改變,都使得驗證框架更加的適應變化和可定制。這篇文章是Asp.net Identity系列的開篇,主要就membership的歷史以及Asp.net Identity中的中的一些新的特性和設計思想分享一下自己的理解。后續將會對Asp.net Identity的實際使用以及實現方式等進行進一步展開。

一, Asp.net membership

Asp.net membership是在2005年的Asp.net 2.0引入的。微軟首次為Web Form提供了一套membership解決方案,包含了表的結構,基礎的操作User, Role等的類,甚至還有一套控件(用戶登錄login, 用戶注冊createuserwizard等這些控件)和一套現成的管理頁面用來配置。(如下圖)

微軟一直的優勢,就是非常的傻瓜化,什么都是現成的,直接拿來就用,但是也帶來了一個負面的影響,就是適應性差,缺乏彈性,無法應對實際應用中的差別需求, 這主要體現在:

  • 1. 無法改變表結構,Asp.net membership為你定義好了User,Role等表,但是實際的開發中,你的User表可能需要更多的字段,這個時候往往只能在創建一個存儲User附屬信息的表。
  • 2. 提供的控件看似方便,但是其實雞肋。由于自帶的login控件和membership類,只提供了簡單的用戶信息錄入,不能滿足我們項目的需要。例如:我們要用戶注冊的時候同時輸入QQ號碼,電話號碼,家庭地址。那么使用默認的方式是沒有辦法解決的。
  • 3. 默認只能是存儲在Full Sql Server中,對于SQL Server CE, SQL Azure都不支持。通過自定義的Provider可以將membership中的數據存儲到其它的關系數據庫中,但是對于NoSQL數據庫,實現起來非常麻煩。

二, Asp.net simple membership

Asp.net simple membership是再一次的改進,目標是讓你更容易地將membership集成到現有的系統中。更容易體現在,它的外部依賴少,對于原有系統的侵入少。

可以定義自己的User表,然后通過下面代碼, 生成membership工作所依賴的表,你就能將你系統中的User表和simple membership無縫對接起來。SimpleMembership沒有強制的表結構, 所以你可以用任何你覺得舒服的定義自己的User表來存儲User信息。這里實際中就是有2個User表,一個是你定義的User表;另一個是simple membership中的User表,只包含和membership相關的信息。

WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", true);

下圖是simple membership在數據庫中生成的表

但是simple membership本質上也只是上一代membership的改良而已。從下面的圖中能夠看出來,simple membership是membership的另外一種實現,提供了一種方便使用的MembershipProvider。

由于這種原因, simple membership仍然擺脫不了一些弊病:

  • 仍然無法應用到NoSql數據庫中.
  • 無法集成到OWIN中
  • 無法方便的擴展

三,Asp.net Identity簡單介紹

Identity是微軟設計的全新的獨立的membership系統,是為所有的Asp.net應用提供服務的

Identity有下面優點:

  • Asp.net全境適用:? Asp.net, MVC, web api, SignalR
  • User信息自定義
  • 存儲易于擴展: 默認使用EF Code First存儲到數據庫中,但是也非常容易擴展到SharePoint, Windows Azure Storage Table Service, NoSQL databases
  • 可單元測試
  • 角色: 有Role Provider,非常容易創建和管理角色
  • Claims權限信息: 相比簡單的Role權限控制,Claims提供了更加豐富的內容
  • 社交化登錄: 比如Facebook等
  • 支持Windows Azure Active Directory
  • 支持OWIN
  • Nuget發布和安裝

Identity的原理以及基本設計思想

要完整的理解Identity,需要先了解OWINOWIN可以參考文章?下一代Asp.net開發規范OWIN(1)

基于OWIN的設計,使得Identity把membership抽象成了兩塊大的部分。一塊是membership所依賴的數據的存儲,一塊是Identity的authentication部分。

下一篇,將通過一個實際的例子,來分析Identity的具體使用以及背后的設計。

總結

以上是生活随笔為你收集整理的全新的membership框架Asp.net Identity(1)——.Net membership的历史的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。