2014-07-24 54 views
1

我們已經暴露了我們的SQL服務器數據庫後面的slashdb(slashdb.com)。在他們的網站中,我們能夠創建查詢並從其生成的URL中獲取數據。但不是來自外部,如來自C#應用程序。從c#應用程序做一個斜槓數據庫休息API調用

現在我們將在您的c#應用程序中使用這些URL並將數據顯示在我們的網頁中。我知道如何在c#中進行基於休息的呼叫。但我堅持使用我的c#中的slashdb rest api調用發送身份驗證信息。這是拋出403 HTTP錯誤。

請讓我知道如何打電話給從C#應用程序的斜槓db休息調用。

謝謝。

回答

1

HTTP 403確實表示缺少或不正確的憑證或用戶無權查表或查詢資源的事實。

首先,確保您將用於向SlashDB發送請求的用戶名已被分配對查詢的執行權限。爲此,請轉至配置 - >查詢,然後打開查詢定義。在執行字段中輸入用戶名。您可以使用逗號分隔多個用戶名。作爲一個便箋,用戶公衆不需要憑證,所以如果您的資源可以公開使用,只需添加公開的「執行」字段即可。

對於非公共用戶,您需要爲您的HTTP請求提供這些憑證。

SlashDB允許兩種方式來發送您的憑據:使用BasicAuthentication

  • API密鑰
  • Ad.1構造帶Authorization頭的HTTP請求

    1. 用戶名/密碼和用戶名:密碼的binhexed值。看到這個配方#1如何做到這一點:Calling a rest api with username and password - how to

      Ad.2要使用API​​密鑰,先分配SlashDB用戶密鑰(字母數字字符串),然後爲它提供你的要求。

      要做到這一點,轉到配置 - >用戶,並打開用戶的配置對話框。向下滾動到API身份驗證部分的底部,並將密鑰粘貼到提供的字段中。有關靈感,請參閱http://randomkeygen.com/上的CodeIngniter或WEP256鍵。不要使用包含「:」的字符串,因爲它用於將密鑰分割爲app-key和api-key。現在只需要一個鍵。

      將您的密鑰作爲標題或URL查詢字符串發送。默認情況下,參數被稱爲 「apikey」:

      選項1:在頭

      (HttpWebRequest)WebRequest.Create(@"https://slashdb.yourdomain.com/db/Northwind/Customers/CustomerID/ALFKI.json"); 
      req.Headers.Add("apikey", "12345678"); 
      

      選項2:在URL

      (HttpWebRequest)WebRequest.Create(@"https://slashdb.yourdomain.com/db/Northwind/Customers/CustomerID/ALFKI.json?apikey=12345678"); 
      
    相關問題