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