GET リクエストを使用して NSURLConnection を使用してサーバーに接続しています。ログインするには、フォームの URL を含む GET リクエストを送信しています
http://<myUserName>:<myPassword>@my.serverurl.com/user/login
URL の例は次のようになります。
http://someusername:somepass@www.google.com/user/login
初めてログインし、正しいユーザー名とパスワードを渡すと、正常にログインできます。間違ったユーザー名またはパスワードを渡すと、サーバーから、ユーザー名とパスワードが正しくないという応答が返されます..すべて問題ありませんそれから
しかし、正しいユーザー名/パスワードでログインすると、ホームページにアクセスできます。そこでログアウトしてログイン画面に戻ります。間違ったユーザー名とパスワードを入力してログインしようとすると、ログインが成功したという応答が返されます..これは私の問題です。
これは、その後のすべてのログイン リクエストが、正しくないユーザー名とパスワードで正常に返されることを意味します。ブラウザで同じ URL (正しいものと正しくないもの) を確認したところ、すべてが正常に機能しています。
これは私がログインに使用しているコードです
-(void)postRequest{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ;
[request setURL:[NSURL URLWithString:
@"http://myusername:mypass@my.serverurl.com/user/login"]];
[request setHTTPMethod:@"GET"];
// [request setHTTPShouldHandleCookies:NO]; ==> I tried without this first
loginRequestConnection = [[CustomURLConnection alloc]
initCustomURLWithRequest:request
delegate:self
withTAG:LOGIN_REQUEST_CONNECTION];
[request release];
}
現在、CustomURLConnection は NSURLConnection のサブクラスに過ぎず、デリゲート内の複数の接続要求を識別するタグを追加しました
@interface CustomURLConnection : NSURLConnection{
}
@property()NSInteger tag;
@property(nonatomic, retain) NSMutableData *receivedData;
-(id)initCustomURLWithRequest:(NSURLRequest *)request delegate:(id)delegate withTAG:(NSInteger)tagInt;
@end
問題は、NSURLConnection リクエストが Cookie をどこかに保存し、後続のリクエストに再利用していることだと思います。それが私が追加した理由です
[request setHTTPShouldHandleCookies:NO];
コードに。しかし、その問題の有無にかかわらず持続します。この問題の原因に対する他の提案はありますか?