2014-05-08 60 views
2

我正在寫一個新的網站,我正在看Asp.Net Identity 2.0。開箱即用,它爲所有的數據訪問使用實體框架。對於該網站的其他部分,我們正在創建用於數據訪問的中間件Web服務。我們最初的安全計劃是網絡服務器會與中間件通信,中間件會通過實體框架與數據庫進行通信。我們曾計劃通過來自Web服務器的防火牆數據庫訪問進行阻止。微軟Asp.Net身份2.0 - 實體框架與自定義提供商

我看到我可以爲Identity 2.0創建一個自定義提供程序,並且它可以使用中間件來訪問它的數據。

這裏是我的問題:

  1. 它是更安全,不允許在網絡服務器具有直接訪問數據庫?
  2. 如果它更安全,爲什麼微軟不建立這種方式開箱
  3. 如果你從頭開始喜歡我們開始,你會推薦使用實體框架或編寫,通過我們的中間件進入自定義提供層?

謝謝。

+0

爲什麼不只是創建一個「安全」Web服務,並在那裏執行ASP.Net身份的東西,從您的網站調用它?有些地方最終需要訪問數據庫。 2. Microsoft提供這些庫。如何實施它們是另一回事。 3.我會按原樣使用ASP.NET Identity,然後根據需要將其他業務邏輯/數據訪問移到您的Web服務中。 –

+0

是的 - 我想我從安全角度尋找最佳做法... – Steve0212

回答

0

1.)它可以是安全的。我不認爲這是安全問題,而是耦合問題。如果您想在將來升級或更改實體框架,該怎麼辦?如果你想從身份2.0改變?如果你想升級一個,但你不能,因爲另一個不支持它。

2.)微軟希望首先推廣它的產品。爲了簡單起見,如果你確定實體框架和身份2.0,並不介意他們是多麼耦合它可能是完美的解決方案。

3.)您可以花費多少時間/精力在定製提供商上花費?創建自己的提供者可能不值得。

0

Asp.NET標識開箱即用實際上是Asp.Net Identity on Entity Framework。它爲您生成數據庫,連接字符串,模型文件,控制器和上下文類,您可以將它們重定向到自己的數據庫,以便在其中生成Identity表。一切都非常安全,並且他們已經爲您處理了大量的認證/密碼散列問題。我不會說創建自己的提供者是值得的,但如果你願意,你也可以在Identity中創建你自己的提供者。身份2.0是偉大的。非常容易添加自定義表格屬性等。