HTTP认证标题为IIS windows身份验证

我有托管在IIS与Windows身份验证的网站。 我试图访问它在我的iPhone的Web应用程序之一。 目前我使用此代码,但它不工作。

的NSString * authString = [[[NSString的stringWithFormat:@“%@:%@”,@“名为myusername”,@“输入mypassword”]​​ dataUsingEncoding:NSUTF8StringEncoding] base64Encoding]。

authString = [NSString stringWithFormat: @"Basic %@", authString]; **[requestObj setValue:authString forHTTPHeaderField:@"Authorization"];**

我的web应用程序托管与Windows身份验证。 但在这里我使用的基本。 任何一个可以发布的内容是它的正确的HTTP标头。

谢谢..

--------------解决方案-------------

我认为主要的区别是你需要指定要验证对域以及用户名和密码。 这样的事情应该工作。 我已经用了简洁同步请求,理想情况下,你应该使用ASINetworkQueue或NSOperationQueue执行请求。

NSString *username = @"test";
NSString *password = @"test";
NSString *domain = @"test";
NSURL *url = [NSURL URLWithString:@"http://myurl"];
ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
[request setUseSessionPersistence:YES];
[request setUsername:username];
[request setPassword:password];
[request setDomain:domain];
[request start];
if ([request error]) {
if ([[request error] code] == ASIAuthenticationErrorType) {
//Authentication failed
}
} else {
NSLog([request responseString]);
}

我没有访问Windows服务器来测试这一点,但我在过去的测试NTLM所以它应该工作... :)

Windows身份验证(NTLM)不是那么简单基本的身份验证。 NTLM需要多于一个的WebRequest协商安全,所以没有一个静态的HTTP标头,您可以发送登录。

您可以使用第三方ASIHTTPRequest库执行NTLM over HTTP身份验证。

我不是100%肯定它支持NTLM身份验证,但你有没有调查connection:didReceiveAuthenticationChallenge在NSURLConnection的方法是什么?

分类:iphone 时间:2015-03-15 人气:3
本文关键词: IIS,iphone,HTTP认证
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.300 (s). 10 q(s)