はい、資格情報をデバイスに保存する必要があります。これにより、サーバーでセッションが期限切れになったときに、ユーザーをすぐに再認証できます。(これは、ユーザーに毎回ログインを強制するよりも安全性が低いことに注意してください。ユーザーが電話をなくした場合、それを見つけた人は誰でも彼のアカウントにアクセスできるためです。)
メール アドレスとパスワードを SQLite テーブル、plist、テキスト ファイルなど、必要なものに保存するだけです。パスワードを保存しているファイルに他のアプリケーションがアクセスできない場合でも、パスワードを暗号化することをお勧めします。
編集:
ところで、必ずしもすべてのリクエストで資格情報をサーバーに渡す必要はありません。サーバー側で何を使用しているかはわかりませんが、セッションを使用するように設定できるため、ユーザーは再認証が必要になるまでしばらく待ちます。資格情報を送信するために使用したコードを次に示します。
NSURLConnection *connection;
NSString *url = [NSString stringWithFormat:@"http://example.com/service/authenticate.ashx"];
NSString *username = [self.usernameField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *password = [self.passwordField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSMutableString* requestURL = [[NSMutableString alloc] initWithString:url];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: [NSString stringWithString:requestURL]]];
[request setHTTPMethod: @"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setHTTPBody:[[NSString stringWithFormat:@"username=%@&password=%@", username, password] dataUsingEncoding:NSUTF8StringEncoding]];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
その NSURLConnection オブジェクトは Cookie を管理し、ユーザーのログイン状態を維持するため、これを使用して、セッションが期限切れになるまでサーバーに要求を送信し続けることができます。