【发布时间】:2012-04-10 11:25:10
【问题描述】:
我不是在谈论 UIWebView,我想使用 NSURLRequest 打开移动 Safari 应用程序。
为什么?在我的应用程序中,用户已经登录到我们的网络服务器。我想为用户提供启动网页的选项,而无需重新输入他们的凭据。但是,我不能使用 GET,因为这会将他们的凭据放在 URL 中。
那么,我可以使用NSURLRequest 或POST 以其他形式从我的应用程序中打开Safari 应用程序(不是UIWebView)吗?
【问题讨论】:
-
您使用什么形式的会话管理?而且,就此而言,为什么让用户跨凭据边界重新进行身份验证代价高昂?
-
我从来没有说过它很昂贵,但主要原因是因为这是我们的客户想要的。至于会话管理,webservice MVC 3 .NET,我相信它只是一个 cookie(出于与密码相同的原因,我们不想通过 url 发送它)。
-
我明白了。最终,您必须通过网络发送某种形式的凭证以确保其安全。如果您提供 HTTPS 并允许 Safari 正确验证证书,我建议您的客户端通过网络发送会话标识符或身份验证优惠券的概念。这还不够吗?
-
我不明白。您说“用户已经登录到我们的 Web 服务器”,但“GET”会“将他们的凭据放入 URL”。他们最初是如何登录的?为什么 GET 会公开他们的凭据?
-
@mtmurdock 至于登录和会话优惠券:您需要提供某种形式的保证,即客户端发送并被服务器接受的数据很可能来自请求方。一个可靠的方法是提供某种形式的public key authentication,这样你的加密函数的数学保证使得其他人正在使用连接变得非常难以置信,没有妥协。
标签: ios post mobile-safari nsurlrequest