在WCF Web Api站点中验证Android客户端?

时间:2011-12-21 05:48:42

标签: c# android authentication rest wcf-web-api

我想在C#中实现REST-api。我发现WCF Webapi可以做到这一点。 我的第一个问题是我如何只允许经过身份验证的用户访问我的API? 第二个问题是,如果要进行身份验证的客户端是Android设备,我该如何进行身份验证的HTTP请求?

谢谢!

1 个答案:

答案 0 :(得分:3)

... EM 我们做了类似的事情,我们使用基本认证+ HTTPS, 这意味着用户名和密码将在http标头中的每个请求中传递。

因此,在您的Web服务中,您可以进行身份​​验证,如果它来自无效用户,则将其踢出。

或者您可以为每个客户端生成GUID,然后要求将GUID与每个http请求一起传递回搜索,验证GUID。

在Android设备上,当您发出http请求时,添加一个http标头

授权:基本 * ** *

非常简单,这里是android上的codenipet

    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);