如何从 ios 访问安全 url

Posted

技术标签:

【中文标题】如何从 ios 访问安全 url【英文标题】:How to access secured url from ios 【发布时间】:2011-10-06 14:10:50 【问题描述】:

我正在尝试从 ios 访问安全 URL。基本上 url 会提示用户用户名和密码。如何从 ios 发送用户名和密码?

我的代码 这是我用来访问 JSON Parser 的方法

- (NSString *)stringWithUrl:(NSURL *)url
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url
                                            cachePolicy:NSURLRequestReturnCacheDataElseLoad
                                        timeoutInterval:30];
// Fetch the JSON response
NSData *urlData;
NSURLResponse *response;
NSError *error;

// Make synchronous request
urlData = [NSURLConnection sendSynchronousRequest:urlRequest
                                returningResponse:&response
                                            error:&error];

// Construct a String around the Data from the response
return [[[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding] autorelease];


- (id) objectWithUrl:(NSURL *)url
SBJsonParser *jsonParser = [[[SBJsonParser alloc]init] autorelease];
NSString *jsonString = [self stringWithUrl:url];

// Parse the JSON into an Object
return [jsonParser objectWithString:jsonString error:nil]; 

这是我在字典中检索 json 键的一段代码。

- (NSDictionary *) downloadFeed 
id response = [self objectWithUrl:[NSURL URLWithString:@"http://mysite.com/Services/Secure.svc/GetList?id=2127"]];

NSDictionary *feed = (NSDictionary *)response;
return feed; 

谁能告诉我在哪里可以将用户名和密码传递给这个网址?

【问题讨论】:

提示是什么意思?网站上的登录表单,或basic HTTP authentication? 基本 HTTP 身份验证,我更新了我的代码以获得更清晰的图片! 放在这里:http://user:passwd@mysite.com/... 【参考方案1】:

要么切换到ASIHTTPRequest,它简单地处理基本身份验证,要么使用NSMutableRequest 并使用base64 编码的用户:密码对正确设置授权标头。

【讨论】:

我正在为我的登录控制器使用 ASIHTTPRequest。但我在登录后使用 JSON Parser。您是否认为在 url 上使用凭据不够安全?好吧,我将在发行版上使用 HTTPS! 我在哪里分配用户名和密码? NSURL *url = [NSURL URLWithString:@"http://@mysite.com/Services/Secure.svc/GetList?id=2127"]; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; [请求 setRequestMethod:@"GET"]; 安全是一个单独的讨论:-)。 request.username = @"用户"; request.password = @"密码"; - 还要设置一个标志,强制请求在 Authorization 标头中设置基本身份验证。 这是那个标志:request.authenticationScheme = (NSString *)kCFHTTPAuthenticationSchemeBasic;

以上是关于如何从 ios 访问安全 url的主要内容,如果未能解决你的问题,请参考以下文章

一些目录可从公共 URL 访问。如何在 yii 中避免这种情况

如何在 iOS 上通过安全连接流式传输视频

如何在iOS中检查SSL证书的安全性?

如何设置没有ssl证书,就不能访问url?

您访问的页面url的加密key有异常

Socket IO - 如何让多个管理员用户访问多个 URL 上的多个私人房间