0

我有一个使用 AFNetworking 进行联网的应用程序。我正在与之交谈的服务使用基本身份验证进行身份验证。因此,在我的客户端中,我使用 setAuthorizationHeaderWithUsername:password: 方法来设置用户名和密码,一切正常。

现在我应该在应用程序中添加一个“在浏览器中打开”按钮。但是当我调用 URL 时,我 iPhone/iPad 上的 Safari 会希望用户再次登录。

有什么解决方案可以设置登录到默认 cookie 存储时获得的 cookie?

到目前为止,我尝试的是:

NSString* authorization = [client defaultValueForHeader:@"Authorization"];
NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
[cookieProperties setObject:@"myCookie" forKey:NSHTTPCookieName];
[cookieProperties setObject:authorization forKey:NSHTTPCookieValue];
[cookieProperties setObject:@"www.the.server" forKey:NSHTTPCookieDomain];
[cookieProperties setObject:@"www.the.server" forKey:NSHTTPCookieOriginURL];
[cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
[cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];             
[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];

NSHTTPCookie* cookie = [[NSHTTPCookie alloc] initWithProperties:cookieProperties];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];

这给了我一个 cookie,但是在我的 iPhone/iPad 上的 Safari 中打开 URL 时,它不起作用

AFNetworking 中是否有任何 API 调用可以处理该问题?或者有没有办法我可以自己手动完成?

感谢您的帮助

4

1 回答 1

1

不,每个应用程序都有自己的沙盒。无法与 Safari 共享 cookie。

于 2012-11-21T02:26:18.093 回答