2011-12-21 47 views
2

我想在C#中實現REST-api。我發現WCF Webapi可以做到這一點。 我的第一個問題是我如何才能給只有經過身份驗證的用戶訪問我的api? 第二個問題是,如果要進行身份驗證的客戶端是Android設備,那麼如何執行HTTP請求進行身份驗證?在WCF Webapi網站上驗證Android客戶端?

謝謝!

回答

3

em ... 我們做了類似的事情,我們使用基本認證+ HTTPS, 這意味着用戶名和密碼將在每個請求中傳遞,在http頭中。

因此,在您的Web服務中,您可以進行身份​​驗證,如果它來自無效的用戶,則將其踢出。

或者,您也可以爲每個客戶端生成一個GUID,然後要求將GUID與每個http請求一起傳回搜索,驗證GUID。

Android設備上,當你發送HTTP請求,添加一個HTTP頭

授權:基本* ** *

很容易,這裏是Android上codesnipet

String baseUrl = this.getValue(ServiceBaseUrlKey);</i> 
    DefaultHttpClient client = new ConnectionManager().getHttpClient();//create a httpclient 
    HttpGet request = new HttpGet(); 
    request.setURI(new URI(baseUrl + "Path")); 
    //TODO need to wrap up how to apply the basic authentication. 
    UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("UserName", "****"); 
    request.addHeader(new BasicScheme().authenticate(credentials, request)); 
    request.addHeader("Content-Type","Application/JSON"); 
    HttpResponse response = client.execute(request); 
+0

+1 ...除此之外,除非您提供正文,否則不需要設置內容類型。 –