2012-04-17 96 views
1

我一直在做這麼多的研究和閱讀,我的頭正在旋轉着選項。我想要做的是創建一個WCF服務,該服務將包含使用基於角色的身份驗證的數據訪問和業務邏輯。我想從使用KendoUI的JavaScript應用程序中使用此服務。我有基於消息的安全性工作,我有SqlMembershipProvider和SqlRoleProvider在示例WCF服務中工作。從另一個.NET應用程序訪問時,它工作正常;在那裏我變得非常困惑是最好的方式使用JavaScript以REST風格訪問它。需要經過身份驗證的WCF REST體系結構建議

從我至今讀,這聽起來像直接從JS去WCF REST可能不是最容易或最佳支持路徑。許多與REST相關的WCF擴展已被棄用(例如,WCF REST Starter Kit已棄用; WCF Web API最近成爲ASP.NET Web API,不再提及WCF?)。由於看起來REST的「官方」方式是使用ASP.NET Web API,並且ASP.NET Web API現在是ASP.NET MVC的一部分,所以我認爲可能應該使用ASP.NET MVC應用程序在其中提供KendoUI代碼的頁面,這些代碼會對RESTful調用MVC應用程序,然後該應用程序會將呼叫轉發給WCF服務。我可以使用this answer中描述的技術來實現自定義MembershipProvider,MVC應用程序將使用Forms Authentication將WCF服務中的授權/驗證邏輯集中到MVC層中,同時使其完全集成到MVC層中,並充分利用功能ASP.NET窗體身份驗證(例如自動重定向和Cookie)。

總結一下,對我來說重要的部分是:1.認證,角色感知WCF服務,和2訪問其方法,最簡單的方式從一個JavaScript應用成爲可能。我想盡可能利用內置或即裝即用的功能。我以上提出的架構是否理智?它是如此簡單,還是有比這更簡單的方法?

非常感謝, 亞當

回答

1

我強烈建議你朝使用ASP.Net的Web API框架移動。您可以實現您提到的所有內容,包括使用ASP.Net MVC和Web API組合的Authentication \ Authorization。

看,當一個新的ASP.Net MVC項目由Visual Studio創建獲取生成的模板。它包含認證工作流的基本實現。您可以從此工作流程中派生您的實施。在ASP.Net

形式的認證歸結爲在響應中設置一個形式的驗證票的cookie,然後使用由ASP.Net提供的認證\授權基礎設施來執行任何認證\授權約束。這與ASP.Net,MVC,WCF(在ASP.Net兼容模式下)無縫工作。

+0

感謝我在同一個位置的響應 – 2012-04-18 02:35:29

+0

,我使用消息級別的身份驗證和自定義驗證與SQL成員資格集成WCF服務運行。這一切都可以從一個.net客戶端正常工作,但我有一個公司建立一個mac.os應用程序,他們很難連接到wcf服務。 我搜索了很多,它似乎都指向REST和新的Web API。 – noir 2012-05-08 17:13:43