0

所以我需要在我的登录应用程序中做的是使用用户/密码执行 HTML 请求,该请求返回带有令牌的 XML。令牌在以后的 http 请求中使用。

我知道如何执行 http 请求以及如何解析它们,我已经这样做了,只是为了测试目的而使用硬编码的令牌。我还解决了如何使用应用程序首选项允许通过以下方式输入和检索密码:

NSString* settingValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"<Setting Key>"]

问题是我是否希望在应用程序启动时发生这种情况,我应该在哪里执行此操作?我不希望我的应用程序在启动时挂起而不给用户一些反馈,你知道是否没有用户/密码设置或者它是否被服务器拒绝。你有什么建议?谢谢

4

1 回答 1

0

在我正在开发的应用程序中,我在单独线程的第一个视图中执行此操作。这样它就不会锁定 UI。我还以主视图的代表的身份执行此操作,因此它可以报告进度条的进度。稍后,我将在视图中以幻灯片的形式进行操作,该视图只是阴影,因此该人可以在加载身份验证时使用不需要身份验证的应用程序部分。

IMO 如果您在应用程序委托中执行此操作,您可能需要几秒钟才能进行身份验证,并且您将无法轻松向用户报告此情况。

处理身份验证的最佳方式是在使用 HTML 请求时使用 cookie。您可以在应用范围内使用 NSHTTPCookieStorage 检索这些 cookie(不仅仅是在进行身份验证的类中)。如果您想继续使用您的令牌,您可以在 Application Delegate 类 (myApplicationAppDelegate.h) 中创建一个全局变量

PS,我不会将用户名和密码保存在 NSUserDefaults 中,因为它以纯文本形式存储在设备上。请改用钥匙串。

于 2010-02-11T03:59:51.600 回答