2011-03-22 4 views
0

프로덕션 웹 서버에 연결할 때 잘 작동하는 Android 앱이 있습니다. 향후 릴리스 테스트를위한 개발 서버가 만들어졌습니다. 그것은 사용자 이름/암호로 잠겨있는 IIS 서버입니다.데이터를 게시하기 전에 Windows 인증, 나는 무엇이 누락 되었습니까?

httpclient.getCredentialsProvider()를 사용하여 사용자 이름과 암호를 보내어 다른 작업을 수행하기 전에 페이지를 인증 할 수 있지만 올바르게 작동하지 않는 것 같아 일부 코드가 누락되었다고 가정합니다. 뭔가 잘못하고있어.

나는 자격 증명을 망쳐 놓고 포트와 전체 URL을 보내려고했는데 그 중 하나가 작동하지 않아 null과 -1로 바뀌어서 어떤 사이트에서 어떤 포트에서 작동해야한다는 것을 의미합니다. 시도한 모든 방법은 여전히 ​​인증하지 않은 것과 동일한 결과를 얻습니다.

여기에 제가 지금 있습니다.

 HttpParams httpParams = new BasicHttpParams(); 
     HttpConnectionParams.setConnectionTimeout(httpParams, 10000); 
     HttpConnectionParams.setSoTimeout(httpParams, 10000); 
     DefaultHttpClient httpclient = new DefaultHttpClient(httpParams); 
    httpclient.getCredentialsProvider().setCredentials(new AuthScope(null,-1), new UsernamePasswordCredentials("someusername", "somepassword")); 
HttpPost httpost = new HttpPost("someURL"); 

다른 비 관련 코드는 다음

UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nvps, HTTP.UTF_8); 
httpost.setEntity(formEntity); 
     HttpResponse response = httpclient.execute(httpost); 
+0

입니까? – JarrettV

답변

0

IIS는 기본, 다이제스트 및 통합과 같은 HTTP 인증 방법을 지원

을 게시 이름 값 쌍을 설정합니다. 문제는 이들 모두가 Windows 계정에 고정되어 있다는 것입니다. 즉, HTTP 인증을 사용하려는 모든 계정에 대해 서버에서 Windows 사용자가 필요합니다. 일반 기본 인증을 다시 수행 할 수있는 능력이 있습니다. 데이터베이스에 웹 응용 프로그램 같은 상황의 범위에 대해 매우 편리한 것, 그것은 NTLM 또는 Kerberos 등 (WCF) 웹 서비스, REST 서비스, 실버 서비스 백엔드

enter link description here

관련 문제