2017-03-17 213 views
3

我們想開發一個新的ASP.NET Web應用程序,如果它以某種方式可能我們想要採用ASP.NET Core。這個願望的原因之一是,我們愛上了ASP.NET Core Identity ..但是一個問題是,身份依賴於實體框架,實體框架核心仍然有一些我們需要的未實現的功能(https://github.com/aspnet/EntityFramework/wiki/Roadmap) 。身份核心與實體框架6

從來就發現在其中作者提供可能性來使用實體框架6與ASP.NET核心(https://docs.microsoft.com/en-us/aspnet/core/data/entity-framework-6)的製品。建議使用EF 6和ASP.NET Core的方式是,創建一個以.NET Framework 4.6.something爲目標的新dll,並將所有EF-stuff放入其中。由於這種方法是我們一般的數據處理計劃,因此需要以某種方式訪問​​身份數據。還有許多專用的EF身份識別功能(例如AspNetCore.Identiy.EntityFrameworkCore),使授權/身份驗證的東西更好,更簡單,更快,更輕鬆 - 無論如何。

但是,使用不同的框架(或者更糟的是一個框架的不同版本)來訪問同一個數據庫,或者使用不同的技術在兩個不同的地方訪問兩次相同的數據並不是那種清除乾淨的東西,我們認爲的。

可能是我完全難住了,這是很清楚,但我不真的有現在一個乾淨的方式還是可以接受的方法針對此問題。

任何想法?

回答

4

如果我是你,我會看看Brock Allen的IdentityServer4。這裏https://github.com/IdentityServer/IdentityServer4和這裏http://docs.identityserver.io/en/release/的文件。

你甚至會在msdn網站上找到一些推薦它的博客。 https://blogs.msdn.microsoft.com/webdev/2016/09/19/introducing-identityserver4-for-authentication-and-access-control-in-asp-net-core/

我想你會發現它是一個更完整的解決方案。

要引用MSDN博客;

IdentityServer4就可以建立以下功能到您的應用程序 :

認證即服務集中登錄邏輯和工作流程 所有的應用程序(Web,本地,移動服務和水療中心)的。

單點登錄/登出在多個 應用類型的單點登錄(輸入和輸出)。

訪問控制用於各種類型的客戶機 ,例如API的API的版本的訪問令牌服務器到服務器,Web應用程序,SPA和 本地/移動應用程序。

聯合網關支持外部身份提供商,如Azure Active Directory,Google,Facebook等。這樣可以屏蔽您的應用程序 以瞭解如何連接到這些外部提供程序的詳細信息。

專注於定製最重要的部分 - 的 許多方面IdentityServer可定製,以滿足您的需求。由於 IdentityServer是一個框架,而不是盒裝產品或SaaS,因此您可以編寫代碼來調整系統,使其適用於您的 方案。

+0

Thx快速回答!爲了我的理解:你說,最好的辦法是讓身份的東西由其他人完成?你建議的解決方案比目前的身份「更完整」嗎?我需要檢查鏈接的內容,並且也會回答這個問題;) – Joshit

+0

不。IdentityServer4是一個「框架」,您可以使用它來編寫您的身份和授權解決方案。如果你也喜歡,可以堅持使用ASP.Net Identity,並在其上構建。 – richardb

+0

Thx小費!在我解決了最初的問題之後,我會毫不猶豫地看看這個;)IdentityServer使用或可以使用Identity和/或Entity Framework。只要我沒有找到解決這個問題的辦法,就可以深入挖掘可能的實施方案。 – Joshit