2010-01-15 245 views
2

如何在iPhone應用程序中管理用戶會話?我在應用程序的第一頁上獲取用戶的用戶名和密碼。用戶可以隨時註銷。如何將會話信息存儲在iPhone應用程序中,就像任何其他Web應用程序一樣?還有其他技術嗎? 謝謝。iphone會話管理

+0

請問您具體嗎?你的意思是你的應用程序連接到的Web服務會話?你的意思是退出後退出嗎?你看過NSUserDefaults嗎? – Costique 2010-01-15 10:41:38

+0

你正在開發一個僅適用於html的應用程序嗎? – TechZen 2010-01-15 13:28:57

+1

我一直devloping iphone應用程序,而不是iPhone的網絡應用程序。當用戶登錄我的應用程序(提交他的用戶名和密碼)時,我使用NSUSerDefaults存儲他們的憑據。但是,用戶可以在他點擊註銷按鈕時註銷。那麼,當他點擊註銷按鈕時我應該怎麼做。我應該如何檢查應用程序的每個頁面中的用戶會話信息。我足夠清楚了嗎?簡而言之,我如何處理iphone應用程序中的用戶會話控制機制(比如在一個標準的web項目中)(我正在開發基於iphone的基於窗口的應用程序,而不是iphone web proect)。 謝謝。 – molloy 2010-01-15 14:37:38

回答

2

您可以從您的應用程序的任何地方撥打NSUserDefaults。這通常是存儲狀態信息的地方。

如果您設想您可能必須爲大量用戶存儲信息,則應該創建自定義數據庫並僅依靠它。最簡單的方法是使用Core Data。您可以將託管對象上下文駐留在應用程序委託中,然後通過調用應用程序委託從任何地方訪問它。

我會告誡你,iPhone應用程序有一個不同的設計模式比Web應用程序。除非您正在實施基於Web的界面,否則您不應該在頁面和會話方面進行思考。

+1

你好,鑰匙串存儲用戶名/密碼怎麼樣?我的意思是,我有4個視圖控制器,我想在所有控制器中使用會話。我怎樣才能做到這一點? NSUserDefaults或鑰匙串? – 2013-07-10 09:09:51

0

可以節省NSUserDefaults

-(void)saveToUserDefaults:(NSString*)myString 
{ 
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; 

    if (standardUserDefaults) { 
     [standardUserDefaults setObject:myString forKey:@"username"]; 
     [standardUserDefaults synchronize]; 
    } 
} 

,如果你有NSUserDefaults的用戶名信息,您可以得到您的用戶名信息的用戶名信息

-(NSString*)retrieveFromUserDefaults 
{ 
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; 
    NSString *val = nil; 

    if (standardUserDefaults) 
     val = [standardUserDefaults objectForKey:@"username"]; 

    return val; 
} 

使用

NSString * username=[self retrieveFromUserDefaults:@"username"]; 
if (!([username length]==0)||![username isEqualToString:@""]) 
{ 
NSLog(@"no authentication and redirect authentication page "); 
} 
else 
{ 
NSLog(@"it's authentication!"); 
}