【问题标题】:How do I make "apple-mobile-web-app-capable" not lose its session?如何让“apple-mobile-web-app-capable”不丢失会话?
【发布时间】:2012-04-20 16:45:54
【问题描述】:

我有一个网络应用程序。

<meta name="apple-mobile-web-app-capable" content="yes">

我把它放在那里。

我添加到主屏幕。

但是,我意识到在关闭网络应用程序后我总是需要重新登录。

如何让它保持会话?

【问题讨论】:

  • 大量谷歌搜索让我无法回答同样的问题。我怀疑您打算使用本地存储自动重新登录或其他东西,这是可行的,但似乎很奇怪。
  • 我也没有找到一个简单的解决方案。

标签: ios browser safari webkit iphone-standalone-web-app


【解决方案1】:

当我必须访问外部应用程序时,我使用静态类和静态变量(例如字典(字符串,对象))来保存数据。如果你使用 FormAuthentication,你会注意到

User.Identity.IsAuthenticated = true 

但会话不存在。您可以使用“User.Identity.Name”作为键来获取字典中的数据。

这适用于 ASP.Net MVC3

【讨论】:

  • 如果这没有用。您能否提供有关如何在 ASP.Net MVC 中处理此问题的信息?谢谢
【解决方案2】:

有一个简单的答案,但到目前为止我无法在 Apple 的官方文档中找到任何参考。

诀窍是这样做:

// Start or resume session
session_start(); 

// Extend cookie life time by an amount of your liking
$cookieLifetime = 365 * 24 * 60 * 60; // A year in seconds
setcookie(session_name(),session_id(),time()+$cookieLifetime);

如果您像这样延长会话 cookie 的生命周期,Safari 将保留会话 cookie,甚至允许在您的网络应用程序的“安装主屏幕”版本和通过 Safari 本身进行的正常访问之间共享会话。

如需更详细的讨论,请查看我对这个问题的回答:

Maintain PHP Session in web app on iPhone

【讨论】:

  • 这个答案可能适用于 php 上下文,但因此无法提供关于 iOS 本地存储生命周期(或类似)方面的真正问题是什么的线索
  • 一般的解决方案是延长会话cookie的生命周期。此答案中提供的代码确实是 PHP,但它应该可以很好地说明这一点。有关更多背景信息,请参阅链接的问题。
猜你喜欢
  • 2012-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
相关资源
最近更新 更多