2010-09-15 61 views
2

我擔心如何實施安全措施,可能是身份驗證或授權.. 如何實施這些措施..如果您有任何關於WCF REST 4.0安全性的想法或鏈接,並且您已經實施它也更好。因爲我一直試圖找出這個話題,我發現的所有信息都是關於如何使用3.5和更低的版本來實現它,這些版本似乎與我看到的樣本不同,我試過但在實現它時沒有意義。在REST中實現安全性?

謝謝

+0

我最近也想做同樣的事情,並跑到www.dotnetopenauth.net。我認爲它使用它。祝你好運! – 2010-09-15 17:25:47

回答

1

因爲REST是無狀態的,所以不能使用cookie或會話ID。對所有請求使用HTTP Basic Authentication和HTTPS是很常見的。

+0

感謝這篇文章,所以我得到了Base64編碼的結果,其結果如下:QWxhZGRpbjpvcGVuIHNlc2FtZQ ==然後,我如何解析此回來獲取我在這裏傳遞的用戶名和密碼。可以用所有方法實現(Get,Put,Post和Delete)Thanks – Ravi 2010-09-15 09:23:08

+0

@Ravi您是否要求提供base64解碼功能?是的,像認證元素這樣的http頭元素可以使用所有HTTP方法發送。 – rook 2010-09-15 18:21:43

+0

@謝謝你的回覆。是的base64函數來實現您在評論中說的HTTP基本認證和HTTPS。 – Ravi 2010-09-17 04:28:10

1

您可能想要探索WCF REST的此解決方案,它是一個用於實現具有自定義用戶數據庫的基本身份驗證的攔截器。

http://weblogs.asp.net/cibrax/archive/2009/03/20/custom-basic-authentication-for-restful-services.aspx

這攔截器進行身份驗證與用戶輸入密碼,並初始化當前主體,所以你可以,如果你想有一個邏輯的東西使用從服務本身是一個做授權或實施IAuthorizationManager可以在多個服務中重用。

您還可以在我的博客中找到其他身份驗證方法,例如證書身份驗證或OAuth,這些方法不太常見。

謝謝 Pablo。

+0

你好巴勃羅,我通過這樣傳遞用戶名和密碼在客戶端實現了安全性:m_RestHttpClient.TransportSettings.Credentials = new System.Net.NetworkCredential(「admin」,「admin」);我現在關心的是如何在服務器端提取此網絡憑據 – Ravi 2010-09-20 05:42:09

0

對於授權,您可以查看XACML。