2010-02-16 39 views
6

我已經在這裏看到了幾個類似的場景,但不是我特別的場景。我想知道是否有人能告訴我去哪個方向?MVC2共享WCF服務和身份驗證的應用程序(和其他人)

我正在開發兩個(以及更多的)MVC2應用程序。稍後還會有另一個(較厚的)客戶端(WPF或Silverlight,TBD)。 這些都需要共享相同的認證。對於MVC2應用程序,它們(最好)需要單一登錄 - 即如果用戶登錄到一個MVC2應用程序,則應該在另一個應用程序上進行授權,只要該Cookie尚未超時即可。

將使用表單身份驗證。

所有的應用程序都需要使用常見的業務功能,並通過通用的WCF服務應用程序執行數據庫訪問。如果WCF不可公開訪問(即阻止在FW後面),那將會很好(我認爲)。較厚的客戶端可以使用其他服務層訪問Common WCF App。

什麼這個看起來應該像是:

MVCApp1 - > WCFAppCommon

MVCApp2 - > WCFAppCommon

ThickClient - > WCFApp2 - > WCFAppCommon

是否有可能進行的所有認證/授權在WCFAppCommon? 否則,我想我必須重複MVCApps和WCFApp2中的所有安全邏輯,而對於我來說,它似乎自然地坐在WCFAppCommon中。另一方面,似乎如果我在WCFAppCommon中進行身份驗證/授權,我將無法使用表單身份驗證。

我在哪裏看到可能的解決方案(我還沒有嘗試過),它們看起來比表單驗證和單個數據庫複雜得多。

任何幫助表示讚賞,

菲爾

回答

4

我以爲我應該回到我所學的東西(並重新學習)。

首先重新吸取教訓 - 不要固定在建築上,然後嘗試使其他所有東西都適合。我固定在.Net,SQL Server,WCF,MVC2,EF4和IIS7上。固定在我的腦海中,我希望這些如何融合在一起是愚蠢的!最好出去看看存在哪些指導。

這讓我想起我所學到的 - 這裏有一個鏈接:

http://wcfsecurityguide.codeplex.com/

我打折本文幾次,因爲它是一個有點過時。但是,我認爲這實際上非常相關,如果您正在遠程啓動一個關於保護服務的項目,請查看。第四部分有我需要的一切。

1

我們正在使用託管報告系統WCF Web應用程序(我們從Silverlight的訪問它),因爲它是使用同一臺機器的密鑰作爲我們的MVC應用程序 - 我們可以分享餅乾認證。

否則,您必須向您的WCF應用程序發送身份驗證票據(自定義或不)。

相關問題