0

ネットワークに AFNetworking を使用するアプリケーションがあります。私が話しているサービスは、認証に Basic Auth を使用しています。したがって、私のクライアントでは、 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

いいえ、各アプリには独自のサンドボックスがあります。Cookie を Safari と共有する方法はありません。

于 2012-11-21T02:26:18.093 に答える