我们正在尝试在使用表单例份验证的 MVC3 网站上实现 iOS 无线 (OTA) 安装。
安装页面仅对经过身份验证的用户可用。我们还希望使用表单例份验证锁定实际的 *.plist 和 *.ipa 文件。这是为了防止有人在知道 URL 的情况下尝试直接安装该文件。
一旦我们落实了所有安全措施,我们就无法成功安装该应用程序。 iPad 浏览器返回错误:“无法连接到 XXXX.com”。如果我们允许所有用户访问文件所在的文件夹,安装就会成功完成。
这就是我们的问题所在。 OTA 安装请求似乎在其请求中未包含身份验证 cookie。目前,这是我们对正在发生的情况的最佳猜测,因为当我们允许所有用户访问该文件夹时,一切正常。另外,我们检查了 IIS 日志,似乎也得出了相同的结论。
以下是相关日志文件信息:
2012-04-05 20:42:37 XXX.XXX.XXX.XXX GET/[网站]/[安全文件夹]/[文件].plist - 80 - XXX.XXX.XXX.XXX iTunes-iPad- M/5.0.1+(32GB) 302 0 0 46
2012-04-05 20:42:37 XXX.XXX.XXX.XXX GET/[网站]/login ReturnUrl=%2f[网站]%2f[安全文件夹]%2f[文件].plist 80 - XXX .XXX.XXX.XXX iTunes-iPad-M/5.0.1+(32GB) 200 0 0 15
我们对日志文件的解释是,对 /[WEBSITE]/[SECURED FOLDER]/[FILE].plist 的请求被拒绝,并返回 302。记录的下一个请求是应用程序的登录页面,其中 plist 文件的路径作为返回 URL:/[WEBSITE]/login ReturnUrl=%2f[WEBSITE]%2f[SECURED FOLDER]%2f[FILE]。列表
关于我们如何克服这个问题有什么想法吗?
最佳答案
最终,我们的怀疑是正确的。 OTA 安装请求的请求中不包含身份验证 cookie。
为了解决这个问题并仍然具有一定程度的身份验证,我们删除了对安装文件的安全限制。然后,我们向 OTA 位置的链接添加了一次性使用验证 key 。
关于当 plist 文件受表单例份验证保护时,iOS 无线安装失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10036372/