2012-09-28 126 views
3

我有一個數據庫上執行正常的CRUD任務的各種C#REST服務,REST服務sercurity

例如,我有一個休息的服務給客戶添加到我的客戶數據庫表,將期望XML如下圖所示,

<CreateCustomerRequest> 
    <Name>Customer name</Name> 
    <Surname>Customer surname</Surname> 
</CreateCustomerRequest> 

任何知道URL和正確的XML結構的人都可以因此調用其餘服務並將客戶插入到我的數據庫中。確保未經授權的插入不被執行的最佳方法是什麼?也許是關鍵與爲MD%([名稱字段]出的要求+姓字段] + [共享客戶端/服務器密鑰] ??發送

回答

4

你可以使用基本身份驗證與REST服務。 每次調用都需要發送的認證信息,或者該呼叫將失敗,401

基本上,以下需要被附加到請求的內容標頭:

Authorization: Basic YWRtaW46YWRtaW4x 

其中YWRtaW46YWRtaW4x被base64編碼的用戶名:密碼

您也可以實施SSL,並讓您的客戶端隨每個請求一起發送證書,如果您需要該級別的安全性。

除非你是該領域的專家,否則不要試圖發明自己的安全。